ما هي أفضل طريقة لملء عنصر تحكم قائمة الصفحة الرئيسية?

StackOverflow https://stackoverflow.com/questions/54118

سؤال

قاعدة البيانات ؟ الصفحة المتغيرات ؟ التعداد?

أنا أبحث عن الآراء هنا.

هل كانت مفيدة؟

المحلول

على ASP.NET خريطة الموقع ميزة بنيت من أجل أن يعمل بشكل جيد في الكثير من الحالات.إذا كنت تحصل في المكان الذي تريد القائمة تبدو مختلفة من الموقع الخاص بك, هنا بعض الحلول.

إذا كان لديك ديناميكية بنية الموقع ، يمكنك إنشاء مخصص خريطة الموقع مزود.قد تحصل إلى النقطة حيث أنه أكثر صعوبة مما يستحق ، ولكن في ملء القائمة الخاصة بك من ملف sitemap يعطيك بعض ملامح لطيفة مثل الأمن التشذيب في القائمة خيارات مناسبة للمستخدم بتسجيل الدخول.

نصائح أخرى

هذا سؤال مهم ، وهناك الكثير من طرق التعامل معها.

يمكنك تحميل القائمة بنية XML من هذا الطريق المدمج في ASP.NET عناصر التحكم في التنقل/"خريطة الموقع" يعمل الإعداد.وربما هذا هو خيار جيد عموما ، هناك جيدة إلى حد معقول الأدوات في Visual Studio.

إذا كان الديناميكية القائمة التي تحتاج إلى تغيير الكثير, الحصول على العناصر من قاعدة البيانات يمكن أن تكون فكرة جيدة, ولكن كنت بالتأكيد تريد أن ذاكرة التخزين المؤقت لهم ، لذلك DB لا تحصل على ضرب في كل صفحة تقديم.

لقد قمت بإنشاء الموقع باستخدام ASP.NET ضوابط تسجيل الدخول و مصادقة النماذج العضوية/الاعتماد على ASP.NET تطبيق ويب.و أنا باستخدام خريطة الموقع من أجل التنقل في الموقع.

لدي ASP.NET TreeView و القائمة عناصر التحكم في التنقل المأهولة باستخدام SiteMapDataSource.ولكن خارج حدود المسؤول فقط صفحات مرئية المستخدمين غير مسؤول.

  1. أنا خلقت شبكة الإنترنت.خريطة الموقع خريطة الموقع الملف.وأنا تستخدم ASP.NET إدارة موقع ويب أداة إنشاء قواعد الوصول.

  2. لقد تم إضافة عناصر التحكم في التنقل على بلدي .الصفحة الرئيسية...

    <asp:SiteMapPath ID="SiteMapPath1" runat="server" />
    <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource2" />
    <asp:TreeView ID="TreeView1" runat="server"  DataSourceID="SiteMapDataSource1" />
    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
    <asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" ShowStartingNode="False" />
    
  3. أنا وضعت securityTrimmingEnabled إلى "true" في شبكة الإنترنت.config...

    <?xml version="1.0"?>
    <configuration>
        ...
        <system.web>
            ...
            <siteMap defaultProvider="default">
                <providers>
                    <clear/>
                    <add name="default"
                        type="System.Web.XmlSiteMapProvider"
                        siteMapFile="web.sitemap"
                        securityTrimmingEnabled="true"/>
                </providers>
            </siteMap>
            ...
        </system.web>
        ...
    </configuration>
    
  4. أنا عدلت شجرة في الماجستير.التعليمات البرمجية vb خلف الملف...

    Protected Sub TreeView1_DataBound( ByVal sender As Object, ByVal e As EventArgs ) Handles TreeView1.DataBound
    
        'Collapse unnecessary menu items...
        If TreeView1.SelectedNode IsNot Nothing Then
            Dim n As TreeNode = TreeView1.SelectedNode
            TreeView1.CollapseAll()
            n.Expand()
            Do Until n.Parent Is Nothing
                n = n.Parent
                n.Expand()
            Loop
        Else
            TreeView1.ExpandAll()
        End If
    
    End Sub
    

إذا كانت القائمة ديناميكية لكل مستخدم ثم سيكون لديك لضرب قاعدة بيانات لكل مستخدم.من ثم على أنا ربما تخزينه في الدورة المستقبل لتجنب جولة-رحلات إلى قاعدة البيانات.

إذا كان ديناميكية ، ولكن الموقع بأكمله يرى نفس العناصر ، ثم وضعها في قاعدة بيانات ذاكرة التخزين المؤقت النتائج

ملزمة خريطة الموقع هو بالتأكيد أسهل.

ذلك يعتمد كليا على كيفية عمل الموقع.أنا في الاتفاق مع معظم هذا الموقع هو عادة أفضل طريقة للقيام بذلك.ومع ذلك ، إذا كنت تستخدم CMS, ثم قد تحتاج إلى الاحتفاظ بها في قاعدة البيانات.إذا كان لديك تصنيف مركزية الموقع ، ثم استخدام التصنيف بناء القائمة.لا يوجد "أفضل طريقة" للقيام الملاحة, فقط أفضل طريقة للحصول على حالة معينة.

لدينا ميزة مشابهة.

القائمة تطبيق يتم تحميله على الصفحة الرئيسية من قاعدة البيانات ، لأن مرئية خيارات القائمة تعتمد على أذونات المستخدم.

زوجين من الاتفاقيات هيكل ذكي على قاعدة البيانات التأكد من أن قائمة كود تحميل هو عام و التلقائى يتنقل إلى الشاشة المناسبة عند اختيار خيار القائمة معينة.نحن نستخدم UIP للتنقل ComponentArt على عناصر تحكم ويب.

راجع للشغل ComponentArt سيء.ثم مرة أخرى أعتقد أن كل طرف السيطرة على المكتبات القيام به.

كفاءة الوصول البدائية ميزة من وجهة نظر المستخدم.عام موحية النهج قاموس البحث, يناسب تماما و متداخلة والهياكل القائمة أيضا.يتنقل المستخدم من النقرات أو فريدة من نوعها الضغط على المفاتيح, بالإضافة إلى مفاتيح الأسهم مقدما (صحيح) أو العودة (إلى اليسار) مع أعلى/أسفل على النحو المعتاد.أقترح أن نشر القوائم على طلب باستثناء واحد الأولية وتوفير جافا سكريبت العمل ، كلما النهائي العنصر المحدد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top