![](/img/trans.png)
[英]How to dynamically add items to list box inside Modal Popup in asp.net c#
[英]ASP.NET C# Add items to list from stored proc dynamically
我希望我的帳戶顯示如下(在列表中)
<div id=AccountDiv" class"account-table">
<div class="color-1">
<h3>Account Information</h3>
<ul>
<li style="text-align: left" >Electric: Austin Energy - 10265</li>
<li style="text-align: left">Gas: Texas Gas Service - 15754892 </li>
<li style="text-align: left">Propane: Propane Austin - 577-12</li>
</ul>
</div>
<div>
我想動態地從數據庫中提取每個帳戶信息。 我是asp.net的新手,所以寫了以下內容
<div id=AccountDiv" class"account-table">
<asp:Panel ID="AccountDiv" runat="server" CssClass="account-table">
<div class="color-1">
<h3>Account Information</h3>
<ul>
</ul>
</div>
<asp:Panel>
<div>
這就是我寫的后端。
void PopulateAccountInformation()
{
DataAccess da = new DataAccess();
da.AddParameter("SiteID", SiteID, DataAccess.SQLDataType.SQLInteger, 4);
SiteHeader = da.runSPDataSet("GetSiteAccountList");
for (int i = 0; i < SiteHeader.Tables[0].Rows.Count; i++)
{
Label LabelAccount = new Label();
LabelAccount.Text = "Account Number: " + SiteHeader.Tables[0].Rows[i]["Account Number"].ToString();
AccountDiv.Controls.Add(LabelAccount);
AccountDiv.Controls.Add(new LiteralControl("<br />"));
}
}
它顯示如下信息:
帳號:3786843-7
帳號:6520325-9
帳號:80-000178814-0162499-3
帳號:100269408-Swr
帳號:100034269
帳號:100269408
哪個很好,但是如何編寫它以便為每個帳戶列出一個列表?
謝謝
像這樣向您的頁面添加文字控件:
<asp:Literal ID="litContent" runat="server"></asp:Literal>
然后您的功能如下(未經測試):
void PopulateAccountInformation()
{
DataAccess da = new DataAccess();
da.AddParameter("SiteID", SiteID, DataAccess.SQLDataType.SQLInteger, 4);
SiteHeader = da.runSPDataSet("GetSiteAccountList");
string content = "<ul>";
for (int i = 0; i < SiteHeader.Tables[0].Rows.Count; i++)
{
content +="<li style=\"text-align: left\" >" + SiteHeader.Tables[0].Rows[i]["Account Number"].ToString() + "</li>";
}
content += "</ul>";
this.litContent.Text = content;
}
研究使用Repeater或DataList控件。 這些都是用來顯示數據的,您無需像嘗試那樣手動添加控件。
您要使用asp內置服務器控件ListBox
。 像這樣:
<asp:ListBox ID="lstAccounts" runat="server"></asp:ListBox>
然后在您的代碼隱藏中,添加如下元素:
void PopulateAccountInformation()
{
DataAccess da = new DataAccess();
da.AddParameter("SiteID", SiteID, DataAccess.SQLDataType.SQLInteger, 4);
SiteHeader = da.runSPDataSet("GetSiteAccountList");
foreach(DataRow account in SiteHeader.Tables[0].Rows)
{
this.lstAccounts.Items.Add(new ListItem("Account Number: " + account["Account Number"].ToString()));
}
}
這應該工作。
標記:
<div id=AccountDiv" class"account-table">
<div class="color-1">
<h3>Account Information</h3>
<asp:Repeater ID="rptrAccounts" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
Account Number: <%# Eval("Account Number") %>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</div>
</div>
后面的代碼:
void PopulateAccountInformation()
{
DataAccess da = new DataAccess();
da.AddParameter("SiteID", SiteID, DataAccess.SQLDataType.SQLInteger, 4);
SiteHeader = da.runSPDataSet("GetSiteAccountList");
rptrAccounts.DataSource = SiteHeader.Tables[0];
rptrAccounts.DataBind();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.