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?

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top