ASP.NET将存储过程中的数据添加到自定义表中
问题描述:
我的问题基本上是这样的:ASP.NET将存储过程中的数据添加到自定义表中
我有一个到SQL-Server数据库的连接。我有一个类可以访问这个数据库并返回一个DataTable。
我想使用从存储过程中获取的DataTable在我的HTML中生成引导表。
从本质上讲,我想是这样结束了:
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,如上构建您的字符串,并将文字控件的Text属性设置为您的生成的文本。但是,如果您刚刚开始使用asp.net并且您的环境允许,我强烈建议您查看一下asp.net MVC,因为剃须刀语法对于生成Bootstrap内容更加友好。
+0
谢谢你正确的方向。开始一个MVC教程,它看起来会更容易为我需要做的事情。 – 2015-02-05 17:20:37
答
就像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()
这将是一个理想为repeater控制工作 - 但如果你有你的表设置在字符串中绑定returnString的aspx页面上的文字控制的值 – DavidB 2015-02-05 14:52:48