我想在 HTML 表中显示存储过程的输出。我知道如何在 gridview 中显示,但我不知道如何在 HTML 表格中显示。谁能给我建议或提供示例代码,以便我从中学习。我已经搜索并尝试解决。我想从创建的 HTML 表中创建图表。
问问题
4715 次
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 回答