Domanda

Vorrei filtrare le voci da web.sitemap utilizzando l'evento OnDataBinding, ma non viene eseguito.Mi piacerebbe avere funzionalità, che mi permette di verificare se il ruolo dell'utente ha accesso a una particolare funzione.

Ho creato la tabella con l'elenco delle funzioni e la tabella di collegamento per creare privilegi.Permetterò ad Amministratore di aggiungere nuovi ruoli e dare loro un insieme di funzioni che sono consentite piuttosto che usare ISINROLE che non sembra abbastanza flessibile per i miei bisogni.

Allora, ho aggiunto quanto segue:

<asp:sitemapdatasource ID="SiteMapMenuSrc" runat="server" ShowStartingNode="false" OnDataBinding="MainMenu_DataBinding" SiteMapProvider="SiteMap1"></asp:sitemapdatasource>
.

dove sitemap è web.config Entry:

<add name="SiteMap1" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap"/>
.

Sembra che il MainMenu_DataBinding non sia chiamato.Non ho trovato alcuna spiegazione adatta.Cosa c'è di sbagliato nel mio codice?

È stato utile?

Soluzione

Questo perché SiteMapDatasource è solo un controllo Data Fonte di dati non fa nulla da solo

Devi effettivamente usarlo, ad esempio:

    <asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server" 
        Orientation="Horizontal" RenderingMode="Table" 
        StaticSubMenuIndent="16px">
        <StaticSelectedStyle Font-Bold="True" />
    </asp:Menu>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top