我正在使用

以专业方式创建SharePoint网站
SPWeb spWeb = spSite.AllWebs.Add(...);

我需要运行哪些代码来设置spWeb以关闭“在导航中显示页面”选项?

<强>答案:

publishingWeb.IncludePagesInNavigation = false;
有帮助吗?

解决方案

我不确定自己,但我找到了这个

  

修改导航是另一种常见的做法   品牌推广任务,因为它会影响什么   用户可以查看以及如何继续操作   通过网站层次结构。该   Microsoft.SharePoint.Publishing   命名空间暴露了几个类   定位发布网站   基础设施,例如PublishingWeb   和PublishingPage。使用这些   上课时,我们可以轻松修改   每个站点的导航。如果你想   子Web显示为根级别   全球导航中的网站,首先转向   从父站点继承,   像这样:

publishingWeb.InheritGlobalNavigation = false;
  

您可能还想隐藏所有网站   来自全球导航的页面。设置   IncludePagesInNavigation为false   隐藏网站中的所有页面,   不管是否   PublishingPage.IncludeInGlobalNavigation   property设置为true

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

如果您正在处理默认网站   不从PublishingWeb继承,   它仍然可以隐藏这些   来自全球导航栏的网站。   例如,如果您创建一个站点   使用协作收集   门户网站模板,想要排除   来自全球导航的新闻网站,   将该网站添加到   __GlobalNavigationExcludes网站的属性:

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;

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top