2014-12-04 105 views
0

我有一個asp菜單如下所示。我想在後面的代碼中隱藏具有文本「Old」的子項目。刪除子菜單項

<asp:Menu ID="Viewmenu" runat="server" Visible="true" PathSeparator="," BackColor="#FFFFEB" DynamicHorizontalOffset="2" > 

    <Items> 
     <asp:MenuItem Text="View" Value="New Item"> 
       <asp:MenuItem Text="Old" Value="Old que"></asp:MenuItem> 
       <asp:MenuItem Text="Profile" Value="Address"></asp:MenuItem> 
     </asp:MenuItem> 
    </Items> 
</asp:Menu> 

所以就用finditem然後項目從後面的代碼除去如上所示,沒有任何錯誤代碼下方運行

Dim s As MenuItem 
s = Viewmenu.FindItem("New Item,Old que") 
Viewmenu.Items.Remove(s) 

但是,但是具有文本=「老」不除去菜單項和(在我的情況下,我試圖從菜單項中刪除子菜單項) 我嘗試使用Viewmenu.FindItem("New Item")來檢查代碼是否正常工作,並按預期刪除完整菜單本身。

那麼爲什麼刪除菜單項中的菜單項不起作用?我錯過了什麼?或者有沒有更好的方法來實現從代碼背後的相同?

回答

1

嘗試下面的代碼,希望有幫助,並且使用C#的標籤,但我猜你的代碼是VB

C#代碼

MenuItem parent = Viewmenu.FindItem("New Item"); 
MenuItem s = Viewmenu.FindItem("@New Item\Old que"); 
parent.ChildItems.Remove(s); 

VB代碼

Dim parent As MenuItem = Viewmenu.FindItem("New Item") 
Dim s As MenuItem = Viewmenu.FindItem("New Item,Old que") 
parent.ChildItems.Remove(s) 
+1

它工作。 C#標記是錯誤的。 – 2014-12-04 11:40:11

0

VB代碼那爲我工作是:

Dim parent As MenuItem = Viewmenu.FindItem("New Item") 
Dim s As MenuItem = Viewmenu.FindItem("New Item/Old que") 
parent.ChildItems.Remove(s) 

請注意第二行的正斜槓。