SharePoint의 Navigation에서 프로그램 페이지를 프로그래밍 방식으로 끄는 방법

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

문제

나는 Progamically를 사용하여 SharePoint 사이트를 만들고 있습니다

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

"내비게이션에서"표시 페이지를 끄려면 SPWEB를 설정하려면 어떤 코드를 실행해야합니까?

대답:

publishingWeb.IncludePagesInNavigation = false;
도움이 되었습니까?

해결책

나 자신을 확신하지 못했지만 찾을 수있었습니다 이것:

탐색 수정은 사용자가 볼 수있는 내용과 사이트 계층 구조를 진행할 수있는 방법에 영향을 미치기 때문에 또 다른 일반적인 브랜딩 작업입니다. Microsoft.sharePoint.publishing 네임 스페이스는 PublishingWeb 및 PublishingPage와 같은 게시 사이트 인프라를 대상으로하는 여러 클래스를 노출시킵니다. 이 클래스를 사용하여 각 사이트의 내비게이션을 쉽게 수정할 수 있습니다. 자식 웹이 글로벌 탐색에서 루트 레벨 사이트로 표시되도록하려면 먼저 부모 사이트에서 상속을 끄십시오.

publishingWeb.InheritGlobalNavigation = false;

글로벌 내비게이션에서 모든 사이트 페이지를 숨길 수도 있습니다. includeingpage.includeinglobalnavigation 속성이 true로 설정되어 있는지 여부에 관계없이 사이트의 모든 페이지를 숨겨지는 정보를 포함하는 설정.

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

PublishingWeb에서 상속받지 않는 기본 사이트를 다루는 경우 글로벌 탐색 표시 줄에서 이러한 사이트를 숨길 수 있습니다. 예를 들어, 협업 포털 템플릿을 사용하여 사이트 컬렉션을 만들고 글로벌 탐색에서 뉴스 사이트를 제외하려면 해당 사이트를 __globalnavigationExexcluds 사이트의 속성에 추가하십시오.

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은 내부 링크, 외부 링크 및 글로벌 탐색 표시 줄에 대한 제목을 추가하는 방법을 보여줍니다. 이 예제는 링크가 새 창에서 열리는 지 여부와 빈 URL을 처리하는 방법에 영향을 미치는 SPNAvigation 클래스의 속성 중 일부를 다룹니다.

다른 팁

SP 2010의 경우 아래에서 사용하십시오 ...

publishingweb.navigation.globalincludepages = false;

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top