从codebehind C#Asp.net添加到列表
我在ASPX页面中有一个UL列表:
我想从代码隐藏中动态添加列表项,包括每个新列表项的href条目。
怎么样?
您需要将ul标记为服务器端控件,然后将“new item”视为HtmlGenericControl
并将其插入控件集合中:
要添加项目,请创建一个新元素并添加它:
HtmlGenericControl li = new HtmlGenericControl("li"); tabs.Controls.Add(li); HtmlGenericControl anchor = new HtmlGenericControl("a"); anchor.Attributes.Add("href", "page.htm"); anchor.InnerText = "TabX"; li.Controls.Add(anchor);
使用asp:bulletedList ,您的列表将更容易。
tab1 tab2 tab3
代码背后:
ListItem li = new ListItem(); li.Value = "*.html"; //html goes here ie xtab1.html li.Text = "New Text"; //text name goes ie here tab1 blTabs.Items.Add(li);
此结果与GenericTypeTea相同,但区别在于HTML在后面的代码中“写入”并注入到页面中。
在你的标记中:
在你的代码背后:
List locations // however this initialized StringBuilder sb = new StringBuilder(); sb.Append(""); for (int i = 0; i < locations.Count; i++) { sb.Append("- Tab " + i.ToString() + "
"); } sb.Append("
"); litMarkup.Text = sb.ToString();
您可以使用asp:Repeater
Control创建动态UL
您可以在.aspx
文件中以下列方式使用转发器
<%# Eval("DisplayText")%>
您可以通过代码将动态数据放在.aspx.cs
文件中
protected void Page_Load(object sender, EventArgs e) { DataTable newsDataTable = new DataTable(); // add some columns to our datatable newsDataTable.Columns.Add("href_li"); newsDataTable.Columns.Add("DisplayText"); for (int i = 1; i <= 5; i++) { DataRow newsDataRow = newsDataTable.NewRow(); newsDataRow["href_li"] = "?sc=item_" + i; newsDataRow["DisplayText"] = "List Item # "+i; newsDataTable.Rows.Add(newsDataRow); } menu_ul_1.DataSource = newsDataTable; menu_ul_1.DataBind(); }
结果:您将通过此代码获得以下html
使用父子项嵌套它,使用下面的元素
Dim newLi = New HtmlGenericControl("li") Dim anchor = New HtmlGenericControl("a") anchor.Attributes.Add("href", itemrow.Item("reg_url").ToString().Trim()) anchor.InnerText = itemrow.Item("conf_name") newLi.Controls.Add(anchor) eventList.Controls.Add(newLi)