¿sitemapdatasource no llama a OnDataBinding?
-
12-12-2019 - |
Pregunta
Me gustaría filtrar las entradas de web.sitemap
usando OnDataBinding
evento, pero no se ejecuta.Me gustaría tener una funcionalidad que me permita verificar si el rol del usuario tiene acceso a una función en particular.
Creé una tabla con una lista de funciones y una tabla de enlaces para crear privilegios.Voy a permitir que el administrador agregue nuevos roles y les daré un conjunto de funciones permitidas en lugar de usar IsInRole, que no parece lo suficientemente flexible para mis necesidades.
Entonces, agregué lo siguiente:
<asp:sitemapdatasource ID="SiteMapMenuSrc" runat="server" ShowStartingNode="false" OnDataBinding="MainMenu_DataBinding" SiteMapProvider="SiteMap1"></asp:sitemapdatasource>
Donde SiteMap es la entrada web.config:
<add name="SiteMap1" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap"/>
Parece que MainMenu_DataBinding
no se llama.No he encontrado ninguna explicación adecuada.¿Qué hay de malo en mi código?
Solución
Eso es porque SiteMapDatasource
es solo un control de fuente de datos no hace nada por si solo
Realmente tienes que usarlo, por ejemplo:
<asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server"
Orientation="Horizontal" RenderingMode="Table"
StaticSubMenuIndent="16px">
<StaticSelectedStyle Font-Bold="True" />
</asp:Menu>