2013-06-05 31 views
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」,但是如何在之後再次顯示它?

我想知道,以及如何在運行時創建這種菜單結構。

請幫我這個。

謝謝。

+0

是的,但所有我能找到的是菜單的菜單項目的知名度和使用「RemoveAt移除」的一些方法但它不是我想要的,因爲我可以在那之後展示它。 –

回答

2

您可以使用RemoveAt()方法知道要刪除的項目的索引。

Menu.Items.RemoveAt(6); 

沒有Hide()方法或在MenuItemVisible屬性。但是,您可以創建一個新實例,並在第二個按鈕的單擊事件期間將其添加到菜單中。

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")); 
    } 
} 
+0

謝謝你,這是有幫助的。 :) –

+0

我想問你一個,但我相信我需要把它放在另一個帖子。再次謝謝你。這爲我工作。 –