Загрузить нижнее горизонтальное меню на основе выбора в первую очередь

У меня есть горизонтальное меню в DIV, и я хотел бы загрузить под ним меню (также горизонтальное) в зависимости от того, что пользователи выбирают в верхнем меню.

Прямо сейчас я визуализирую меню на главной странице в зависимости от того, какая страница содержимого загружена в данный момент. Однако я не знаю, как определить, какой вариант подменю был выбран, когда пользователь щелкает один из них.

Как лучше всего управлять составными горизонтальными меню в ASP.NET?


person Caveatrob    schedule 28.04.2009    source источник


Ответы (1)


Следующее покажет главное меню с 'A' и 'B', подменю с 'A-1' / 'A-2' или 'B-1' / 'B-2' и метку, которая показывает, какое подменю элемент был выбран. Это то, что вы имели ввиду?

<div>
    Main menu:
    <asp:Menu ID="menu1" runat="server" Orientation="Horizontal">
        <Items>
            <asp:MenuItem Text="A">
            <asp:MenuItem Text="B">
        </Items>
    </asp:Menu>
</div>
<div>
    Sub menu:
    <asp:Menu ID="menu2" runat="server" Orientation="Horizontal">
    </asp:Menu>
</div>
<div>
    Selected sub menu item:
    <asp:Label ID="lbl1" runat="server">
</div>

protected void Page_Init(object sender, EventArgs e)
{
    menu1.MenuItemClick +=
        new MenuEventHandler(menu1_MenuItemClick);
    menu2.MenuItemClick += new MenuEventHandler(menu2_MenuItemClick);
}

void menu1_MenuItemClick(object sender, MenuEventArgs e)
{
    menu2.Items.Clear();
    menu2.Items.Add(new MenuItem(e.Item.Text + "-1"));
    menu2.Items.Add(new MenuItem(e.Item.Text + "-2"));
}

void menu2_MenuItemClick(object sender, MenuEventArgs e)
{
    lbl1.Text = e.Item.Text;
}
person Ole Lynge    schedule 28.04.2009
comment
Хороший. Как мне добавить к этому проверку ролей и выделить текущий выбранный пункт меню (вместо отображения его метки) - person Caveatrob; 28.04.2009