Member 12836035 Ответов: 1

Как установить navigateurl для элементов подменю с помощью свойства finditem без каких-либо индексов?


привет..
у меня есть меню, которое содержит меню и подменю.Мне нужно установить URL-адрес навигации для одного из этих подменю.

Что я уже пробовал:

пробуя код ниже, он перенаправляется
mappingMenu.Items[0].ChildItems[3].NavigateUrl = "newpage.aspx";

но, пытаясь без использования индексов, он не получает..
Menu menu=(Menu)Page.Master.Findcontrol("mappingMenu");
Menuitem menuitem=menu.Finditem("Metadata");
menuitem.Navigateurl="newpage.aspx";


Итак, есть ли какой-либо способ навигации с помощью finditem без использования индекса/индексов?

1 Ответов

Рейтинг:
1

Richard Deeming

То Меню.Метод FindItem[^] ожидает, что ValuePath[^] предмета, который вы пытаетесь найти.

Путь значения представляет собой комбинацию Value или Text из пунктов, разделенных меню PathSeparator, который по умолчанию равен /.

Например, учитывая следующее меню:

<asp:menu id="mappingMenu" runat="server" ...>
    <items>
        <asp:menuitem text="Home" tooltip="Home">
            <asp:menuitem text="Music" tooltip="Music">
                <asp:menuitem text="Classical" tooltip="Classical"/>
                <asp:menuitem text="Rock" tooltip="Rock"/>
                <asp:menuitem text="Jazz" tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem text="Movies" tooltip="Movies">
                <asp:menuitem text="Action" tooltip="Action"/>
                <asp:menuitem text="Drama" tooltip="Drama"/>
                <asp:menuitem text="Musical" tooltip="Musical"/>
            </asp:menuitem>
        </asp:menuitem>
    </items>
</asp:menu>

вы бы выбрали пункт "боевики" с помощью:
MenuItem item = menu.FindItem("Home/Movies/Action");