簡體   English   中英

刪除子菜單項

[英]Remove a child menu item

我有一個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)

但是上面的代碼運行沒有任何錯誤,但是具有Text =“ Old”的菜單項沒有被刪除並顯示在菜單中。(在我的情況下,我試圖從菜單項中刪除子菜單項)我嘗試使用Viewmenu.FindItem("New Item")只是為了檢查代碼是否正常工作,以及是否按預期刪除了完整的菜單。

那么,為什么不能刪除menuitem中的菜單項呢? 我缺少什么? 還是有更好的方法可以從后面的代碼中實現相同目的?

嘗試下面的代碼,希望對您有所幫助,並且您使用了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)

對我有用的VB代碼是:

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

注意第二行上的正斜杠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM