0

我想在 HTML 表中显示存储过程的输出。我知道如何在 gridview 中显示,但我不知道如何在 HTML 表格中显示。谁能给我建议或提供示例代码,以便我从中学习。我已经搜索并尝试解决。我想从创建的 HTML 表中创建图表。

4

2 回答 2

1

首先,您必须创建一个 ViewModel 来显示您想要在视图上列出的信息。像这样的东西:

public class ProductViewModel 
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    /* other properties you need */
}

在您的控制器中,您可以访问数据库并创建一个列表并将其返回到显示在 html 输出中的视图。我可以建议您创建一个数据访问层,而不是直接在控制器中使用 Ado.Net。

public ActionResult Index()
{
    var model = new List<ProductViewModel>();

    // create a connection
    SqlConnection con = new SqlConnection("your_connection_string");    
    try 
    {
        // open the conneciton
        con.Open();

        // prepare a command
        SqlCommand command = new SqlCommand("You_Stored_Procedure_Name",con);   
        command.CommandType = CommandType.StoredProcedure;

        // add parameters if you need
        // command.Parameters.AddWithValue("ParameterName", value);

        // execute a reader with the command
        using (var reader = command.ExecuteReader())
        {
            // loop in the result and fill the list
            while (reader.Read())
            {
                // add items in the list
                model.Add(new ProductViewModel() 
                        {
                            Id = (int)reader["Id"],
                            Name = reader["Name"].ToString(),
                            Price = (decimal)reader["Price"]
                            // other properties
                        });
            }
        }       
    }
    catch 
    {
    }
    finally 
    {   
        con.Close();
    }

    return View(model);
}

在您的视图中,您可以使用 键入它并将其IEnumrable<ProductViewModel>列在 html 表或您需要的任何 html 结构中,如下所示:

@model IEnumerable<ProductViewModel>

<table>
    <tr>
        <th>Name</th>
        <th>Price</th>      
    </tr>
    @foreach(var item in Model)
    {
        <tr>
            <td>@item.Name</td>
            <td>@item.Price.ToString("C2")</td>
        </tr>
    }
</table>
于 2013-01-29T13:26:30.003 回答
0

我认为...您可以致电 SP 并在您的 .CS 页面上获取数据...

现在您必须做一件事.. 将该 Datareader 存储在任何列表中。然后应用 linq 查询,您可以根据您的要求获取记录。将该记录存储在单独的变量中。

见示例:

 MainHTML = MainHTML + "<div class=" + "HideDivClass" + " id=" + TMid + "><table width=" + "180" + " cellspacing=" + "1" + " cellpadding=" + "2" + " align=" + "left" + "><tbody><tr><td style=" + "text-align:center;font-size:13px" + "align=" + "center" + " colspan=" + "2" + "><b>" + TransModeName + "</b></td></tr><tr><td class=" + "DetailsFontSize" + ">Last 7 days</td><td  class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualCharge7Days + "</td></tr><tr></tr><tr><td class=" + "DetailsFontSize" + ">Last 30 days</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualCharge30Days + "</td></tr><tr><td class=" + "DetailsFontSize" + ">This Year</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualChargeThisYear + "</td></tr><tr><td class=" + "DetailsFontSize" + ">Total</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + TotalSumActualChargeTotal + "</td></tr><tr><td class=" + "DetailsFontSize" + ">Avg/Shipment</td><td class=" + "DetailsFontSize" + " " + "align=" + "right" + ">$" + AvgShip.ToString("#.####") + "</td></tr><tr><td class=" + "DetailsFontSize" + "align=" + "center" + " colspan=" + "2" + "></td></tr></tbody></table></div>";

在这里,我将 MainHTML 作为字符串...并制作了一个字符串(HTML 布局/设计格式)并将此字符串绑定到标签。

喜欢。label.text = MainHTML.tostring(); 你可以根据你的东西设置设计...

于 2013-01-29T11:21:47.773 回答