动态创建面板内标签/ div的水平列表

时间:2013-12-20 13:19:44

标签: c# asp.net

我正在尝试为aspx页面创建一个页脚的键。页脚是一个用户控件,它包含的只是一个asp:panel。

<asp:Panel ID="pnlFooterKey" runat="server" Height="45px">   

</asp:Panel>

在后面的代码中,我从数据库中获取信息列表。根据从数据库返回的数字,我想显示最多10个标签和10个div /面板。我想动态地做。

List<string> accnames = AccountNames();
for (int i = 0; i < this.NumberOfAccounts; i++)
{
var accName = accnames[i];
Label lbl = new Label();
Image img = new Image();
img.ImageUrl = "~/Images/ajax-loader-blue.gif";
img.Attributes.Add("style", "padding-right:5px;");
lbl.Attributes.Add("style", "padding-right:15px;");
lbl.Text = accName;
pnlFooterKey.Controls.Add(img);
pnlFooterKey.Controls.Add(lbl);
}

以上工作可以用于测试目的,但是我想要的而不是图像是div或类似的东西,我可以根据数据库的结果返回再次更改背景和边框颜色。

密钥将显示如下(彩色块 - 公司名称)(彩色块 - 公司名称)

我尝试过以下操作,虽然公司名称显示在页面中央,但是块显示在左侧。

List<string> accnames = AccountNames();
for (int i = 0; i < this.NumberOfAccounts; i++)
{
var accName = accnames[i];
Label lbl = new Label();
Panel pnl = new Panel();
pnl.Attributes.Add("style", "height:15px; width:15px;padding-right:5px;background-color: #cc0000;border:1px solid black;clear:both;");
lbl.Attributes.Add("style", "padding-right:15px;");
lbl.Text = accName;
pnlFooterKey.Controls.Add(pnl);
pnlFooterKey.Controls.Add(lbl);
}

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我相信你要求的是你想要一个新的div里面的公司名称。如果是,则需要将label添加到相应的panel

pnl.Controls.Add(lbl);
pnlFooterKey.Controls.Add(pnl);