Question

Je souhaite filtrer les entrées de web.sitemap en utilisant OnDataBinding événement, mais il ne s’exécute pas.J'aimerais avoir une fonctionnalité qui me permet de vérifier si le rôle de l'utilisateur a accès à une fonction particulière.

J'ai créé une table avec une liste de fonctions et une table de liaison pour créer des privilèges.Je vais permettre à l'administrateur d'ajouter de nouveaux rôles et de leur donner un ensemble de fonctions autorisées plutôt que d'utiliser IsInRole qui ne semble pas assez flexible pour mes besoins.

J'ai donc ajouté ce qui suit :

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

Où SiteMap est l'entrée web.config :

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

Il paraît que MainMenu_DataBinding n'est pas appelé.Je n'ai trouvé aucune explication appropriée.Quel est le problème avec mon code ?

Était-ce utile?

La solution

C'est parce que SiteMapDatasource est juste un contrôle des sources de données ça ne fait rien tout seul

Il faut effectivement l'utiliser, par exemple :

    <asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server" 
        Orientation="Horizontal" RenderingMode="Table" 
        StaticSubMenuIndent="16px">
        <StaticSelectedStyle Font-Bold="True" />
    </asp:Menu>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top