我有一个现有的ASP.NET 2.0应用程序<UL>.我想以编程方式向其添加项目.我已经添加了ID和runat="server"属性.
djd*_*d87 19
您可以创建新的HtmlGenericControls并将它们添加到UL控件的Controls属性中吗?因此,给定标记如下:
<ul runat="server" id="foo_bar">
<li>Item</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
你可以这样做(其中itemList是你要添加为LI的东西的列表):
foreach (var item in itemList)
{
HtmlGenericControl newLi = new HtmlGenericControl("li");
newLi.InnerText = item.DisplayText;
foo_bar.Controls.Add(newLi);
}
Run Code Online (Sandbox Code Playgroud)
如果你要出一个字符串数组,即:
string[] itemList = new string[] { "1", "2", "3" };
foreach (string item in itemList)
{
HtmlGenericControl newLi = new HtmlGenericControl("li");
newLi.InnerText = item;
foo_bar.Controls.Add(newLi);
}
Run Code Online (Sandbox Code Playgroud)
您会看到以下结果(使用我的原始标记):
将项目添加到无序列表的最简单方法是使用重复器控件。
您可以将项目列表绑定到中继器,然后根据需要输出每个列表项目。
<asp:Repeater ID="rpt1" Runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%# DataBinder.Eval(Container.DataItem, "Item") %>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTample>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
然后在 C#(或您使用的任何服务器端语言)中执行以下操作:
DataSet listItems = GetTheListItemsMethod();
rptr1.DataSource = listItems;
rptr1.DataBind();
Run Code Online (Sandbox Code Playgroud)