Программный вложенный список

Я пытаюсь создать вложенный список в Asp.Net/C# с ​​помощью элемента управления ListView. Я посмотрел на множество примеров, но я не могу их отличить.

Вот шаблон:

<ul>
    <li>Item 1 - level 1</li>
    <li>Item 2 - level 1</li>
    <li>Item 3 - level 1
        <ul>
            <li>Item 1 - level 2</li>
            <li>Item 2 - level 2</li>
            <li>Item 3 - level 2</li>
        </ul>
    </li>
</ul>

Я создал список, в котором используется (d3)

Однако, я хотел бы внести изменения.

Только один уровень будет иметь подменю - и возможно, что некоторые элементы уровня 1 не будут иметь дочерних элементов, поэтому я ищу шаблон, который может отображать 0 или 1 подменю.

Кто-нибудь знает что мне нужно сделать с помощью следующего кода для достижения того, что я хочу?

<asp:ListView ID="lv" runat="server"
    OnItemDataBound="LV_ItemDataBound">
    <LayoutTemplate>
        <nav>
            <ul class="content-nav">
                <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
            </ul>
        </nav>
    </LayoutTemplate>
    <ItemTemplate>
        <li id="liMenuItem" runat="server">
            <asp:HyperLink ID="lnkMenuItem" runat="server"
            CssClass="content-nav_link"></asp:HyperLink>
        </li>
    </ItemTemplate>
</asp:ListView>

        protected void LV_ItemDataBound(object source, ListViewItemEventArgs e)
        {
            var item = e.Item;

            if (item.ItemType == ListViewItemType.DataItem)
            {
                var data = (ContentNavItem)item.DataItem;

                var liMenuItem = item.GetControl<HtmlGenericControl>("liMenuItem");

                // Do something with the item here
            }
        }

void Build()
{
    var currentId = MenuItems.First(x => x.Route == CurrentUrl).Id;

    var currentItems = MenuItems
        .Where(x => x.IsTopLevel || x.ParentId == currentId)
        .OrderBy(x => x.GroupId).ThenBy(x => x.Anchor);

    lv.DataSource = currentItems;
    lv.DataBind();
}
0
задан 13 August 2018 в 15:51

0 ответов

Другие вопросы по тегам:

Похожие вопросы: