ASP.NET 将存储过程中的数据添加到自定义 table
ASP.NET Adding data from stored procedure into custom table
我的问题本质上是这样的:
我连接到 SQL-Server 数据库。我有一个可以访问该数据库的 class 和一个 DataTable return。
我想使用从存储过程中获取的 DataTable 在我的 HTML.
中生成一个 bootstrap table
基本上,我想以这样的方式结束:
Dim table as DataTable //(let's say this already has all the data I need.)
Dim returnString as String = "<table class=""table table-striped"">"
returnString = "<thead><tr>"
for i = 0 to DataTable.Columns.count - 1
returnString = returnString + "<th>" + DataTable.columns(i).HeaderText + "</th>"
Next
returnString = returnString + "</thead><tbody>"
for i = 0 to DataTable.rows.count - 1
returnString = returnString + "<tr>"
for j = 0 to DataTable.columns.count - 1
returnString = returnString + "<td>" + DataTable.rows(i)(j).value.ToString() + "</td>"
Next
returnString = returnString + "</tr>"
Next
returnString = returnString + "</tbody></table>"
我知道我做的工作超出了我的需要。但是我不确定如何在 ASP.NET 中执行此操作(我以前从未在这种环境中工作过),所以我有点不知所措。如何将我的 "returnString" 变量插入到标记中?我认为了解如何做到这一点会帮助我真正理解 ASP.NET 架构。
假设您在 aspx 页面的代码隐藏页面中编写此代码,您希望在您的 aspx 页面上放置一个 Literal control,如上所述构建您的字符串并设置文本 属性 的文字控件到您生成的文本。
但是,如果您刚刚开始使用 asp.net 并且您的环境允许,我强烈建议您研究 asp.net MVC,因为 razor 语法对于生成 Bootstrap内容
正如 DavidB 所说,您可以像这样使用中继器:
HTML
<table border="0" cellpadding="0" cellspacing="0" class="Listing">
<tr class="Header">
<td>
Rebate Run #
</td>
<td>
Run Date
</td>
<td>
Transaction
</td>
<td style="text-align: right">
Frames Amount
</td>
<td style="text-align: right">
Cash Amount
</td>
<td></td>
</tr>
<asp:Repeater ID="rptRemittance" runat="server">
<ItemTemplate>
<tr class="Detail">
<td align="center">
<%# DataBinder.Eval(Container.DataItem, "RebatePaymentRunID")%>
</td>
<td align="center">
<%# FormatDate(DataBinder.Eval(Container.DataItem, "PaymentRunDate"))%>
</td>
<td align="center">
<%# DataBinder.Eval(Container.DataItem, "Transactions")%>
</td>
<td align="right">
R<%# FormatNumber(DataBinder.Eval(Container.DataItem, "FramesAmount"), 2)%>
</td>
<td align="right">
R<%# FormatNumber(DataBinder.Eval(Container.DataItem, "CashAmount"), 2)%>
</td>
<td>
<asp:LinkButton ID="DownloadLink" runat="server" CommandName="Download" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "RebatePaymentRunID") %>'>
<img src="../../images/icons/pdf.gif" alt="Download invoice"/>
</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
然后您可以像这样绑定数据源:
rptRemittance.DataSource = obj
rptRemittance.DataBind()
我的问题本质上是这样的:
我连接到 SQL-Server 数据库。我有一个可以访问该数据库的 class 和一个 DataTable return。
我想使用从存储过程中获取的 DataTable 在我的 HTML.
中生成一个 bootstrap table基本上,我想以这样的方式结束:
Dim table as DataTable //(let's say this already has all the data I need.)
Dim returnString as String = "<table class=""table table-striped"">"
returnString = "<thead><tr>"
for i = 0 to DataTable.Columns.count - 1
returnString = returnString + "<th>" + DataTable.columns(i).HeaderText + "</th>"
Next
returnString = returnString + "</thead><tbody>"
for i = 0 to DataTable.rows.count - 1
returnString = returnString + "<tr>"
for j = 0 to DataTable.columns.count - 1
returnString = returnString + "<td>" + DataTable.rows(i)(j).value.ToString() + "</td>"
Next
returnString = returnString + "</tr>"
Next
returnString = returnString + "</tbody></table>"
我知道我做的工作超出了我的需要。但是我不确定如何在 ASP.NET 中执行此操作(我以前从未在这种环境中工作过),所以我有点不知所措。如何将我的 "returnString" 变量插入到标记中?我认为了解如何做到这一点会帮助我真正理解 ASP.NET 架构。
假设您在 aspx 页面的代码隐藏页面中编写此代码,您希望在您的 aspx 页面上放置一个 Literal control,如上所述构建您的字符串并设置文本 属性 的文字控件到您生成的文本。
但是,如果您刚刚开始使用 asp.net 并且您的环境允许,我强烈建议您研究 asp.net MVC,因为 razor 语法对于生成 Bootstrap内容
正如 DavidB 所说,您可以像这样使用中继器:
HTML
<table border="0" cellpadding="0" cellspacing="0" class="Listing">
<tr class="Header">
<td>
Rebate Run #
</td>
<td>
Run Date
</td>
<td>
Transaction
</td>
<td style="text-align: right">
Frames Amount
</td>
<td style="text-align: right">
Cash Amount
</td>
<td></td>
</tr>
<asp:Repeater ID="rptRemittance" runat="server">
<ItemTemplate>
<tr class="Detail">
<td align="center">
<%# DataBinder.Eval(Container.DataItem, "RebatePaymentRunID")%>
</td>
<td align="center">
<%# FormatDate(DataBinder.Eval(Container.DataItem, "PaymentRunDate"))%>
</td>
<td align="center">
<%# DataBinder.Eval(Container.DataItem, "Transactions")%>
</td>
<td align="right">
R<%# FormatNumber(DataBinder.Eval(Container.DataItem, "FramesAmount"), 2)%>
</td>
<td align="right">
R<%# FormatNumber(DataBinder.Eval(Container.DataItem, "CashAmount"), 2)%>
</td>
<td>
<asp:LinkButton ID="DownloadLink" runat="server" CommandName="Download" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "RebatePaymentRunID") %>'>
<img src="../../images/icons/pdf.gif" alt="Download invoice"/>
</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
然后您可以像这样绑定数据源:
rptRemittance.DataSource = obj
rptRemittance.DataBind()