SharePoint의 Navigation에서 프로그램 페이지를 프로그래밍 방식으로 끄는 방법
-
03-07-2019 - |
문제
나는 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;