Загрузите нижнее горизонтальное меню на основе выбора в первую очередь - PullRequest
0 голосов
/ 28 апреля 2009

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

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

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

1 Ответ

0 голосов
/ 28 апреля 2009

Далее будет показано главное меню с «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;
}
...