首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET C#从存储过程中动态地将项目添加到列表

ASP.NET C#从存储过程中动态地将项目添加到列表
EN

Stack Overflow用户
提问于 2013-01-29 06:04:49
回答 4查看 1K关注 0票数 0

我希望我的帐户如下所示(在列表中)

代码语言:javascript
复制
<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的新手,所以我写了以下内容

代码语言:javascript
复制
<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>

这是我在后端写的。

代码语言:javascript
复制
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

这很好,但我该如何编写它,以便为每个帐户创建一个列表?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-29 06:12:38

向页面添加一个文本控件,如下所示:

代码语言:javascript
复制
<asp:Literal ID="litContent" runat="server"></asp:Literal>

然后你的函数如下(未测试):

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2013-01-29 06:13:15

研究一下使用转发器或DataList控件。它们是用来显示数据的,你不需要像你试图做的那样手动添加控件。

票数 0
EN

Stack Overflow用户

发布于 2013-01-29 06:21:25

你想使用asp内置的服务器控件ListBox。如下所示:

代码语言:javascript
复制
<asp:ListBox ID="lstAccounts" runat="server"></asp:ListBox>

然后,在您的代码隐藏中,像这样添加元素:

代码语言:javascript
复制
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()));
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14572103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档