SitemapdataSource non chiama onDatabinding?
-
12-12-2019 - |
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?
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>
.