sitemapdatasource لا يستدعي OnDataBinding؟
-
12-12-2019 - |
سؤال
أرغب في تصفية الإدخالات من 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
لا يسمى.ولم أجد أي تفسير مناسب.ماخطب الرمز خاصتي؟
المحلول
ذلك بسبب SiteMapDatasource
ما هو الا التحكم بمصدر البيانات فإنه لا يفعل شيئا من تلقاء نفسها
في الواقع عليك استخدامه، على سبيل المثال:
<asp:Menu ID="Menu1" DataSourceID="SiteMapMenuSrc" runat="server"
Orientation="Horizontal" RenderingMode="Table"
StaticSubMenuIndent="16px">
<StaticSelectedStyle Font-Bold="True" />
</asp:Menu>
لا تنتمي إلى StackOverflow