Как мне программно отключить отображение страниц в навигации для SharePoint

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

Вопрос

Я программно создаю сайт SharePoint, используя

SPWeb spWeb = spSite.AllWebs.Add(...);

Какой код мне нужно запустить, чтобы настроить SPWeb на отключение опции "Показывать страницы в навигации"?

Ответ:

publishingWeb.IncludePagesInNavigation = false;
Это было полезно?

Решение

Я сам не был уверен, но мне удалось определить местонахождение это:

Изменение навигации является еще одной распространенной задачей брендинга, поскольку это влияет на то, что пользователи могут видеть и как они могут продвигаться по иерархии сайта.Пространство имен Microsoft.SharePoint.Publishing предоставляет несколько классов, которые предназначены для сайта публикации инфраструктуры, таких как PublishingWeb и PublishingPage.Используя эти классы, мы можем легко изменять навигацию для каждого сайта.Если вы хотите, чтобы дочерний веб-сайт отображался как корневой сайт в глобальной навигации, сначала отключите наследование от родительского сайта, вот так:

publishingWeb.InheritGlobalNavigation = false;

Возможно, вы также захотите скрыть все страницы сайта от глобальной навигации.Установка Для параметра IncludePagesInNavigation значения false скрывает все страницы сайта, независимо от того, является ли PublishingPage.Для свойства IncludeInGlobalNavigation установлено значение true

// do not show pages in navigation
publishingWeb.IncludePagesInNavigation = false;

Если вы имеете дело с сайтами по умолчанию , которые не наследуются от PublishingWeb, по-прежнему возможно скрыть эти сайты из глобальной панели навигации.Например, если вы создаете коллекцию сайтов с использованием шаблона портала для совместной работы и хотите исключить новостной сайт из глобальной навигации, добавьте этот сайт в __Глобальная навигация исключает собственность сайта:

string globalNavExcludes = String.Empty;
SPWeb webSite = MSDNSiteCollection.RootWeb;
// _GlobalNavigationExcludes property contains a delimited string of 
// GUIDs identifying the Id of each site to be excluded from global
// navigation

if (webSite.AllProperties.ContainsKey("__GlobalNavigationExcludes")) {
  globalNavExcludes = 
    webSite.AllProperties["__GlobalNavigationExcludes"].ToString();
}

SPWeb newsSite = MSDNSiteCollection.AllWebs["News"];
// string is delimited "{GUID};{GUID};",
// use format code B to convert to string
globalNavExcludes += String.Concat(currentWeb.ID.ToString("B"), ";");

webSite.AllProperties["__GlobalNavigationExcludes"] = globalNavExcludes;
webSite.Update();

Добавление узлов навигации непосредственно в SPNavigationNodeCollection - хороший способ отображать только нужные узлы а также группировать узлы и ссылки на внешние сайты.На рисунке 10 показано, как добавить внутреннюю ссылку, внешнюю ссылку и заголовок на панель глобальной навигации .В этом примере рассматриваются некоторые свойства класса SPNavigation , которые влияют на то, открывается ли ссылка в новом окне, и как обрабатывать пустые URL-адреса.

Другие советы

Для SP 2010 используйте приведенное ниже...

Веб-публикация.Навигация.GlobalIncludePages = false;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top