Как показать / скрыть узлы навигации с помощью объектной модели на стороне сервера SharePoint (SSOM)
Класс PortalNavigation предоставляет для этой цели следующие методы:
Примеры
Как скрыть сайт от текущей навигации:
using (var site = new SPSite(siteUrl))
{
using (var web = site.OpenWeb())
{
var subWeb = web.Webs["Announcements"];
var publishingWeb = PublishingWeb.GetPublishingWeb(web);
publishingWeb.Navigation.ExcludeFromNavigation(false,subWeb.ID);
publishingWeb.Update();
}
}
Как показать / скрыть узлы навигации с помощью клиентской объектной модели SharePoint (CSOM)
Не поддерживается изменение настроек навигации через SharePoint CSOM.
Относительно SharePoint 2013 :
В SharePoint 2013 был представлен новый
Microsoft.SharePoint.Client.Publishing и
Microsoft.SharePoint.Client.Publishing.Navigation пространства имен в CSOM
API. Но, к сожалению, не поддерживается изменение навигации
настройки с использованием класса WebNavigationSettings , так как свойства
выставляется как только для чтения .
Для CSOM вы можете использовать класс ClientPortalNavigation.cs , представляющий аналог CSOM для класса SSOM PortalNavigation. Следуйте Получите доступ и управляйте настройками навигации с помощью клиентской объектной модели SharePoint , чтобы узнать больше.
Примеры
Как скрыть страницу из глобальной навигации:
using (var ctx = new ClientContext(webUri))
{
//Get page file
var pageFile = ctx.Web.GetFileByServerRelativeUrl("/news/Pages/Announcements.aspx");
ctx.Load(pageFile);
ctx.ExecuteQuery();
//Hide page from Global navigation
var navigation = new ClientPortalNavigation(ctx.Web);
navigation.ExcludeFromNavigation(true, pageFile.UniqueId);
navigation.SaveChanges();
}
Как скрыть сайт от глобальной навигации:
using (var ctx = new ClientContext(webUri))
{
//Get sub site
var result = ctx.LoadQuery(ctx.Web.Webs.Where(w => w.Title == "Archive"));
ctx.ExecuteQuery();
var subWeb = result.FirstOrDefault();
//Hide web from Global navigation
var navigation = new ClientPortalNavigation(ctx.Web);
navigation.ExcludeFromNavigation(true, subWeb.Id);
navigation.SaveChanges();
}