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>