A volte capita di avere l'esigenza di eliminare dal menu di una web application in aspnet un menu (o un sottomenu) al verificarsi di qualche particolare condizione. Il problema è che il componente in questione non mette a disposizione a runtime un metodo per nascondere un menuitem. Ecco quindi come fare:
Protected Sub Menu1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Menu1.PreRender
If CONDIZIONE Then
'elimino il menu che non mi serve
Dim tot As Integer = Menu1.Items.Count - 1
Dim i As Integer = 0
While i <= tot
Dim ss As MenuItem = Menu1.Items(i)
If ss.Text.ToLower = "nome menu" Then
'elimino i sotto menu
Dim subtot As Integer = Menu1.Items(i).ChildItems.Count - 1
Dim j As Integer = 0
While j <= subtot
Menu1.Items(i).ChildItems.RemoveAt(0)
j += 1
End While
'elimino il menu
Menu1.Items.Remove(ss)
i = i - 1
tot = tot - 1
End If
i += 1
End While
End If
End Sub
Nessun commento:
Posta un commento