sitemapdatasource не вызывает OnDataBinding?

Я хотел бы отфильтровать записи из web.sitemap с помощью OnDataBinding событие, но оно не выполняется. Я хотел бы иметь функциональность, которая позволяет мне проверить, есть ли у роли пользователя доступ к определенной функции.

Я создал таблицу со списком функций и связью таблиц для создания привилегий. Я собираюсь позволить администратору добавлять новые роли и предоставлять им набор функций, которые разрешены, а не использовать IsInRole, которая не кажется достаточно гибкой для моих нужд.

Итак, я добавил следующее:

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

Где SiteMap является записью web.config:

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

Кажется, что MainMenu_DataBinding не называется. Я не нашел подходящего объяснения. Что не так с моим кодом?

1 ответ

Решение

Это потому что SiteMapDatasource это просто элемент управления источником данных, он ничего не делает сам по себе

Вы действительно должны использовать это, например:

    <asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server" 
        Orientation="Horizontal" RenderingMode="Table" 
        StaticSubMenuIndent="16px">
        <StaticSelectedStyle Font-Bold="True" />
    </asp:Menu>
Другие вопросы по тегам