eeee lo so che rompo ma questa non so proprio come prenderla
Ho un menu nella masterpage siffatto:
Ora nella masterpage devo nascondere alcune voci di menu a seconda dell'utente che entra nel sito.codice:<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal" RenderingMode="List" StaticEnableDefaultPopOutImage="False"></asp:Menu> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" /> <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode title="main"> <siteMapNode title="Menu admin"> <siteMapNode title="tab1" url="tab1.aspx" view="1"></siteMapNode> </siteMapNode> <siteMapNode title="Menu utenti" > <siteMapNode title="tab2" url="tab2.aspx" view="2"></siteMapNode> </siteMapNode> <siteMapNode title="Menu visitatori" > <siteMapNode title="tab3" url="tab3.aspx" view="3"></siteMapNode> </siteMapNode> </siteMapNode> </siteMap>
Riesco a farlo per i childitem (cioè con tutte le voci tab1, tab2, tab3) usando l'istruzione seguente
ma non riesco a rimuovere in nessun modo il nodo con il padre (es quello con title="Menu admin" nel caso l'utente sia un visitatore)!codice:Protected Sub Menu1_MenuItemDataBound(ByVal sender As Object, ByVal e As MenuEventArgs) Handles Menu1.MenuItemDataBound Dim mi As MenuItem = e.Item Dim node As SiteMapNode = mi.DataItem .... if node("view") = "1" then mi.Parent.ChildItems.Remove(mi) end if ....
Sottolineo che nella parte aspx, ho indicato al sitemapdatasource di nascondere lo startingnode (alias <siteMapNode title="main">) e credo questo determini che per il nodo padre che voglio rimuovere non posso usare l'istruzione di rimozione suddetta perchè il nodo da rimuovere risulta avere parent=nothing....
Ma allora come diavolo posso fare per rimuovere quel nodo?


Rispondi quotando