我有一个现有<UL>
的ASP.NET 2.0应用。我想以编程方式向其添加项目。我已经添加了ID
和runat="server"
属性。
答案 0 :(得分:19)
您可以创建新的HtmlGenericControls并将它们添加到UL控件的Controls属性中吗?因此,给定标记如下:
<ul runat="server" id="foo_bar">
<li>Item</li>
</ul>
你可以这样做(其中itemList是你想要添加为LI的东西的列表):
foreach (var item in itemList)
{
HtmlGenericControl newLi = new HtmlGenericControl("li");
newLi.InnerText = item.DisplayText;
foo_bar.Controls.Add(newLi);
}
如果你要删除一串字符串,即:
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);
}
您会看到以下结果(使用我的原始标记):
答案 1 :(得分:3)
将项目添加到无序列表的最简单方法是使用转发器控件。
您可以将项目列表绑定到转发器,然后根据需要输出每个列表项。
<asp:Repeater ID="rpt1" Runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%# DataBinder.Eval(Container.DataItem, "Item") %>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTample>
</asp:Repeater>
然后在您的C#(或您正在使用的任何服务器端语言)中执行:
DataSet listItems = GetTheListItemsMethod();
rptr1.DataSource = listItems;
rptr1.DataBind();
答案 2 :(得分:0)
还有System.Web.UI.WebControls.BulletedList
您可以绑定到数据源
var bulletedList = new BulletedList();
bulletedList.DataSource = myData;
bulletedList.DataBind();
或将项目分别添加到Items集合
bulletedList.Items.Add( "item1" );
bulletedList.Items.Add( "item2" );
不要忘记将其添加到页面上的内容中,否则您将永远不会看到它
Page.Controls.Add( bulletedList );
答案 3 :(得分:0)
在div标签内定义一个无序列表,并在标签中添加一个id字段和runat = server,这样你就可以从后面的代码中获取控件。
代码示例背后的代码
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim y As ArrayList = New ArrayList()
y.Add("first")
y.Add("second")
y.Add("three")
For Each z As String In y
Dim x2 As HtmlGenericControl = New HtmlGenericControl("li")
x2.InnerText = z.ToString
ted.Controls.Add(x2)
Next
End Sub