سؤال

أرغب في تصفية الإدخالات من 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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top