سؤال

إذا تمت إدارة مجموعة موقع نشر أو التنقل الهيكلي كمصدر للتنقل العلوي، فكيف يمكنك التعامل مع هذه الإعدادات برمجيًا؟ال SPWeb.Navigation.TopNavigationBar تقوم الخاصية بإرجاع مجموعة مختلفة تمامًا من عقد التنقل (شريط الارتباط العلوي في المواقع غير المخصصة للنشر).

فيما يلي بعض لقطات شاشة واجهة المستخدم حيث توجد الإعدادات التي أتحدث عنها:

عدم النشر (إعدادات شريط الارتباط العلوي):

Top Link Bar Settings

النشر (إعدادات التنقل العامة):

Publishing Navigation Settings Global Navigation Settings

كيف يمكنك اكتشاف ما إذا كان الموقع يستخدم برمجياً أم لا SPNavigation.TopNavigationBar, أو التنقل المُدار أو التنقل الهيكلي لإعدادات التنقل العالمية / التنقل العلوي؟

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

المحلول

حسنًا، بعد الاطلاع على الأعمال الداخلية للتعليمات البرمجية الموجودة خلف صفحات الإعدادات هذه، وجدت أنه يمكنك اكتشاف مصدر التنقل في موقع النشر باستخدام WebNavigationSettings الصف وقراءته GlobalNavigation.Source الممتلكات (أ StandardNavigationSource التعداد) مثل هذا:

if (PublishingWeb.IsPublishingWeb(web))
{
    WebNavigationSettings settings = new WebNavigationSettings(web);
    switch (settings.GlobalNavigation.Source)
    {
        case StandardNavigationSource.PortalProvider:
            // Data source is Structured Navigation
            break;
        case StandardNavigationSource.TaxonomyProvider:
            // Data source is Managed Navigation
            break;
        case StandardNavigationSource.InheritFromParentWeb:
            // Root navigation data source is inherited
            break;
        case StandardNavigationSource.Unknown:
            // The documentation for this value states:
            // "Returns a value of unknown to indicate an advanced configuration
            // that does not correspond to one of the standard configurations.
            // This value cannot be manually assigned to the Source property."
            break;
    }
}
else
{
    // Non-publishing site, root source is SPNavigation.TopNavigationBar
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top