0

我有这个菜单:

<asp:Menu
        id="Menu1"
        Orientation="Horizontal"
        StaticMenuItemStyle-CssClass="tab"
        StaticSelectedStyle-CssClass="selectedTab"
        CssClass="tabs"
        OnMenuItemClick="Menu1_MenuItemClick"
        Runat="server">
        <Items>
        <asp:MenuItem Text="Tab 1" Value="0" Selected="true" />
        <asp:MenuItem Text="Tab 2" Value="1" />
        <asp:MenuItem Text="Tab 3" Value="2" />
        <asp:MenuItem Text="Tab 4" Value="3" />
        <asp:MenuItem Text="Tab 5" Value="4" />
        <asp:MenuItem Text="Tab 6" Value="5" />
        <asp:MenuItem Text="Tab 7" Value="6" />
        <asp:MenuItem Text="Tab 8" Value="7" />
        <asp:MenuItem Text="Tab 9" Value="8" />
        <asp:MenuItem Text="Tab 10" Value="9"/>
        </Items>    
    </asp:Menu>

是否可以在我单击一个按钮时隐藏其中一个菜单项,例如说“选项卡 7”,并在我单击另一个按钮时再次显示它?我知道我可以使用“RemoveAt”,但之后我该如何再次显示它?

我也想知道如何在运行时创建这种菜单结构。

请帮我解决一下这个。

谢谢你。

4

2 回答 2

2

您可以使用该RemoveAt()方法知道要删除的项目的索引。

Menu.Items.RemoveAt(6);

类上没有Hide()方法或Visible属性MenuItem。但是您可以在第二个按钮的单击事件期间创建一个新实例并将其添加到菜单中。

    MenuItem myItem = new MenuItem("Tab 7", "6");
    Menu.Items.AddAt(6, myItem);

您可以使用相同的想法使用代码构建菜单:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        Menu.Items.Add(new MenuItem("Tab 1", "0"));
        Menu.Items.Add(new MenuItem("Tab 2", "1"));
        ...
        Menu.Items.Add(new MenuItem("Tab 10", "9"));
    }
}
于 2013-06-05T02:23:27.333 回答
1

您可以使用:

menuItem1.Visible = true;

如果需要,我会在我的应用程序中使用它。

private void Button1_Click(object sender, EventArgs e)
{
    MenuItem1.Visible = true;
}

private void Button2_Click(object sender, EventArgs e)
{
    MenuItem1.Visible = false;
}

将 MenuItem1 更改为菜单项的名称。

于 2018-08-17T14:41:30.107 回答