标题如何说明,如何从后面的代码向<li>
标记添加各种<ul>
标记。我试过这个Add to List from codebehind C# Asp.net这是我的示例代码。
ASP
<body>
<form id="form1" runat="server">
<div>
<ul id="menu" runat="server"> </ul>
</div>
</form>
代码背后。
protected void Page_Load(object sender, EventArgs e)
{
CreateMenu();
}
protected void CreateMenu()
{
HtmlGenericControl li = new HtmlGenericControl("li");
menu.Controls.Add(li);
HtmlGenericControl anchor = new HtmlGenericControl("a");
anchor.Attributes.Add("href", "login.aspx");
anchor.InnerText = "login";
li.Controls.Add(anchor);
}
它运作得很好但是这可能是一个愚蠢的问题,我怎样才能在<ul>
标签中添加多个元素?我需要为每个项目创建一个新对象(我认为这是错误的)或存在更好的方法来做到这一点?
我搜索了但是任何一个例子都让我怀疑,抱歉,如果你认为这是一个重复的问题。
答案 0 :(得分:3)
如果你的数据(菜单项)不是来自某个来源(比如数据库),你需要反复重复相同的过程。或者你可以创建一个带有2个参数,文本和链接的函数。这样你可以用1行完成这项工作。
private void AddMenuItem(string text, string link)
{
HtmlGenericControl li = new HtmlGenericControl("li");
menu.Controls.Add(li);
HtmlGenericControl anchor = new HtmlGenericControl("a");
anchor.Attributes.Add("href", link);
anchor.InnerText = text;
li.Controls.Add(anchor);
}
AddMenuItem("text","link");
AddMenuItem("text2","link2");
AddMenuItem("text3","link3");
您可以根据自己的特定需求进行改进。
答案 1 :(得分:0)
您可以使用ListView。它的格式更简单。我还找到了一个很好的教程(http://weblogs.asp.net/scottgu/the-asp-listview-control-part-1-building-a-product-listing-page-with-clean-css-ui)
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<div>
<p class="name"><%# Eval("author") %></p>
<p class="date"><%# Eval("insertDate") %></p>
</div>
<p class="comment"><span class="<%# Eval("icon") %>"></span><%# HttpUtility.HtmlEncode(Eval("comment")) %></p>
</li>
</ItemTemplate>
</asp:ListView>