带有子菜单的UL菜单使用ListView

时间:2010-11-07 12:25:16

标签: asp.net listview c#-3.0

我使用的是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

错误:无法从'string'转换为'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>

提前致谢。任何链接和建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)