我有一个菜单项的下一个结构:
class MenuItem
{
public string Path, Title;
}
我希望能够迭代一个对象MenuItem[]
,在每次迭代时创建一个新对象asp:HyperLink
,并将其添加到<ul>
列表中。
必须发生的一件事是每个超链接都将位于<li>
标签内。
我怎样才能做到这一点?
我有一个菜单项的下一个结构:
class MenuItem
{
public string Path, Title;
}
我希望能够迭代一个对象MenuItem[]
,在每次迭代时创建一个新对象asp:HyperLink
,并将其添加到<ul>
列表中。
必须发生的一件事是每个超链接都将位于<li>
标签内。
我怎样才能做到这一点?
您可以使用中继器。在 aspx 中:
<asp:Repeater ID="repMenuItems" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><asp:HyperLink ID="lnkMenuItem" runat="server" Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("Path")%>'/></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
在代码隐藏中:
repMenuItems.DataSource = arrMenuItem; // your MenuItem array
repMenuItems.DataBind();
另外,您应该更改类代码以使用公共属性而不是公共成员,如下所示:
public class MenuItem
{
public string Title {get;set;}
public string Path {get;set;}
}
我建议您阅读更多关于 .NET 中的属性,这是一个很好的对象封装特性http://msdn.microsoft.com/en-us/library/65zdfbdt(v=vs.71).aspx
希望这可以帮助你