繁体   English   中英

ASP.NET将存储过程中的数据添加到自定义表中

[英]ASP.NET Adding data from stored procedure into custom table

我的问题本质上是这样的:

我有一个到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页面的页面后面的代码中编写此代码的,则需要在Litep页面上放置一个Literal控件 ,按上述方法构建字符串,并将文字控件的Text属性设置为生成的文本。

但是,如果您刚刚开始使用asp.net并且您的环境允许,我强烈建议您研究asp.net MVC,因为剃刀语法对于生成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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM