sitemapdatasource não chamar OnDataBinding?
-
12-12-2019 - |
Pergunta
Eu gostaria de filtrar entradas de web.sitemap
usando OnDataBinding
o evento, mas não executa.Eu gostaria de ter a funcionalidade, o que me permite verificar se a função do usuário ter acesso a determinada função.
Eu criei tabela com a lista de funções e de vinculação de tabela para criar privilégios.Eu estou indo para permitir que o administrador para adicionar novas funções e dar-lhes um conjunto de funções que são permitidos em vez de usar IsInRole o que não parece ser flexível o suficiente para as minhas necessidades.
Por isso, eu adicionei o seguinte:
<asp:sitemapdatasource ID="SiteMapMenuSrc" runat="server" ShowStartingNode="false" OnDataBinding="MainMenu_DataBinding" SiteMapProvider="SiteMap1"></asp:sitemapdatasource>
Onde SiteMap está na web.entrada config:
<add name="SiteMap1" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap"/>
Parece, que MainMenu_DataBinding
não é chamado.Eu não encontrei nenhuma explicação adequada.O que há de errado com o meu código?
Solução
Isso porque SiteMapDatasource
é apenas uma controle de fonte de dados ele não faz nada por sua própria
Você realmente tem que usar ele, por exemplo:
<asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server"
Orientation="Horizontal" RenderingMode="Table"
StaticSubMenuIndent="16px">
<StaticSelectedStyle Font-Bold="True" />
</asp:Menu>