【发布时间】:2010-11-07 12:25:15
【问题描述】:
我正在使用 Asp.Net 网络应用程序。 您能否帮助我了解如何使用 ListView 控件创建 UL 菜单,例如:
<ul>
<li><a href="#">Item #1</a>
<ul>
<li><a href="#">SubItem #1</a>
</ul>
</li>
</ul>
通过 DataSource 绑定工作正常,但无法创建树,我需要将 HTML 树列表作为 UL 元素。 理想情况下,在创建 ListViewItem 树的代码中使用递归方法会很棒,然后我会将它们添加到循环中的 ListView 控件中。 现在我至少会很高兴创建几个嵌套循环,我可以在其中硬编码添加项目和子项目,但是当我尝试创建新的 ListViewItem 对象时出现了一些愚蠢的错误。
var lvi = new ListViewItem("Item #1"); // does not work
var lvdi = new ListViewDataItem("Item #1"); // does not work
AdminTopListView.Items.Add("Item #1"); // does not work
AdminTopListView.Items.Add("Item #1", 1); // does not work
错误:无法从“字符串”转换为“System.Web.UI.WebControls.ListViewDataItem”
虽然这是另一个意思:http://msdn.microsoft.com/en-us/library/system.windows.forms.listview%28v=VS.90%29.aspx
怎么了,为什么我不能像 MSDN 所说的那样创建 ListViewItem 和 ListViewDataItem?
还有一个问题,我有 ListView 模板,里面有 HTML A 元素,不知何故 我需要将其 HREF 属性设置为某个值。
如何在 ListView 的 ItemTemplate 中设置锚链接的 HREF 属性?
这是 ListView 的模板:
<asp:ListView
ID="AdminTopListView"
runat="server"
onload="AdminTopListView_Load">
<LayoutTemplate>
<ul runat="server">
<li id="AdminTopListView_PlaceHoler" runat="server"></li>
</ul>
</LayoutTemplate>
<ItemTemplate>
<li id="AdminTopListView_Item" runat="server">
<a href="<%# Eval("RouteURL")%>"><%# Eval("RouteName")%></a>
</li>
</ItemTemplate>
<SelectedItemTemplate>
<li id="AdminTopListView_Item" runat="server">
<a href="<%# Eval("RouteURL")%>"><%# Eval("RouteName")%></a>
</li>
</SelectedItemTemplate>
<EmptyItemTemplate>
<li id="AdminTopListView_Item" runat="server"><a href="#">No data</a></li>
</EmptyItemTemplate>
</asp:ListView>
提前致谢。感谢任何链接和建议。
【问题讨论】: