2015-02-05 47 views
0

我的問題基本上是這樣的: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架構。

+0

這將是一個理想爲repeater控制工作 - 但如果你有你的表設置在字符串中綁定returnString的aspx頁面上的文字控制的值 – DavidB 2015-02-05 14:52:48

回答

2

假設您將代碼寫入aspx頁面的代碼後面,您需要在aspx頁面上放置Literal control,如上構建您的字符串,並將文字控件的Text屬性設置爲您的生成的文本。但是,如果您剛剛開始使用asp.net並且您的環境允許,我強烈建議您查看一下asp.net MVC,因爲剃鬚刀語法對於生成Bootstrap內容更加友好。

+0

謝謝你正確的方向。開始一個MVC教程,它看起來會更容易爲我需要做的事情。 – 2015-02-05 17:20:37

1

就像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() 
相關問題