4

を使用して SharePoint サイトをプログラム的に作成しています

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

spWeb を設定して [ナビゲーションにページを表示] オプションをオフにするには、どのコードを実行する必要がありますか?

答え:

publishingWeb.IncludePagesInNavigation = false;
4

2 に答える 2

7

自分でもよくわかりませんでしたが、これを見つけることができまし

ナビゲーションの変更は、ユーザーが表示できるものと、サイト階層をどのように進むことができるかに影響するため、もう 1 つの一般的なブランディング タスクです。Microsoft.SharePoint.Publishing 名前空間は、PublishingWeb や PublishingPage など、発行サイト インフラストラクチャを対象とするいくつかのクラスを公開します。これらのクラスを使用すると、各サイトのナビゲーションを簡単に変更できます。子 Web をグローバル ナビゲーションでルート レベル サイトとして表示する場合は、まず、次のように親サイトからの継承をオフにします。

publishingWeb.InheritGlobalNavigation = false;

グローバル ナビゲーションからすべてのサイト ページを非表示にすることもできます。IncludePagesInNavigation を false に設定すると、PublishingPage.IncludeInGlobalNavigation プロパティが 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 は、内部リンク、外部リンク、および見出しをグローバル ナビゲーション バーに追加する方法を示しています。この例では、リンクが新しいウィンドウで開くかどうか、および空の URL を処理する方法に影響を与える SPNavigation クラスのプロパティの一部に対処します。

于 2008-10-23T01:34:48.830 に答える
2

SP 2010 の場合、以下を使用します...

PublishingWeb.Navigation.GlobalIncludePages = false;

于 2011-05-11T07:46:33.957 に答える