首先根据选择加载底部水平菜单

时间:2009-04-28 19:17:03

标签: asp.net menu submenu

我在DIV中有一个水平菜单,我想根据用户在顶部菜单中选择的内容加载它下面的菜单(也是水平)。

现在我正在根据当前加载的内容页面在母版页中呈现菜单。但是,当用户点击其中一个时,我不知道如何确定选择了哪个子菜单选项。

在ASP.NET中管理堆叠水平菜单的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

以下将显示带有'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;
}