0

アカウントを以下のように表示したい(リスト内)

<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 />"));

        }


    }

次のような情報が表示されます。

口座番号:3 786 843-7

口座番号:6 520 325-9

口座番号:80-000178814-0162499-3

アカウント番号:100269408-Swr

口座番号:100034269

口座番号:100269408

どちらがいいのですが、アカウントごとにリストを作成するように書くにはどうすればよいですか?

ありがとう

4

4 に答える 4

0

次のように、ページにリテラルコントロールを追加します。

<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;
}
于 2013-01-28T22:12:37.933 に答える
0

リピーターまたはDataListコントロールの使用を検討してください。これらはデータを表示するために作成されているため、実行しようとしているように手動でコントロールを追加する必要はありません。

于 2013-01-28T22:13:14.830 に答える
0

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()));
        }
    }
于 2013-01-28T22:21:25.033 に答える
0

これは機能するはずです。

マークアップ:

<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:&nbsp;<%# 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();

}
于 2013-01-28T23:05:59.013 に答える