Как программно отключить показ страниц в навигации для sharepoint

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

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

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

Ответ:

publishingWeb.IncludePagesInNavigation = false;

2 ответа

Решение

Я не был уверен, но я смог найти это:

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

publishingWeb.InheritGlobalNavigation = false;

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

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

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

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 используйте ниже...

publishingWeb.Navigation.GlobalIncludePages = false;

Другие вопросы по тегам