Как программно отключить показ страниц в навигации для sharepoint - PullRequest
4 голосов
/ 23 октября 2008

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

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

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

Ответ:

publishingWeb.IncludePagesInNavigation = false;

Ответы [ 2 ]

7 голосов
/ 23 октября 2008

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

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

publishingWeb.InheritGlobalNavigation = false;

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

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

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

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.

2 голосов
/ 11 мая 2011

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

publishingWeb.Navigation.GlobalIncludePages = false;

...