SharePointサイトのすべてのページにWebPartを追加する方法は?
-
16-10-2019 - |
質問
Windows Server 2008 Enterpriseを使用してSharePoint Server 2007 Enterpriseを使用しており、公開ポータルテンプレートを使用しています。 VSTS 2008 + C# + .NET 3.5を使用して開発しています。
SharePointサイトのすべてのページにWebPartを追加する方法を知りたいですか?
参照サンプルはありますか?
このWebPartを使用して、一般的な情報を表示したい(ただし、情報は動的に変更される可能性があります。そのため、すべてのページでWebパートを選択します)。
解決
その情報が動的に変更されても、Webパートを使用する必要があるという意味ではありません。
あなたのときにウェブパートを使用してください
- 開発者を巻き込むことなく、Webパートを追加するか、Webパートのプロパティを変更することにより、デザイナー/貢献者がデフォルト機能を変更する必要があります
- フィルターWebパート、接続されたWebパート、キャッシュなどとして使用するなど、特定の理由があります。
あなたがしていることについては、代わりに通常のASP.NETカスタムWebコントロールを使用することをお勧めします。
要件に応じて、これはマスターページまたはレイアウトページのいずれかに配置できます。
また、新しいコントロールを追加するための柔軟性を高め、サイト構造の異なるレベルで異なる動作をするための柔軟性を高める代表団のコントロールを開発することもできます。代表団のコントロールの詳細
HTH ANDERS RASK
他のヒント
Webパートはより高度なWebControlであるため、Webパートはどちらの方法でも機能すると思います。私はそれを2つの方法のいずれかをします:
- SPデザイナーを使用して、マスターページまたはページレイアウトに追加します。
- 機能を使用してプログラム的にすべてのページに追加します
1は、Webパートゾーンがない場所にWebパートが存在する必要がある場合です。マスターページまたはページレイアウトのすべての異なるインスタンスに変更を行う必要があります。ほとんどの人はマスターページを1つだけ持っているので、これは簡単な勝利かもしれません。
2は、Webパーツゾーンのあるページだけに制限されます。 Webパートをプログラム的に追加するには、ゾーンに追加する必要があります。
Webパートを追加するコードは次のようになります。
ContentEditorWebPart webpart = new ContentEditorWebPart();
webpart.ChromeType = PartChromeType.TitleOnly;
webpart.Title = "Content Editor";
XmlDocument xmlDoc = new XmlDocument();
XmlElement xmlElement = xmlDoc.CreateElement("MyElement");
xmlElement.InnerText = "My Text";
webpart.Content = xmlElement;
using (SPLimitedWebPartManager mgr = web.GetLimitedWebPartManager(pageUrl, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared))
{
try
{
mgr.AddWebPart(webPart, "MiddleLeftZone", 0);
}
finally
{
if (mgr != null &&
mgr.Web != null)
{
mgr.Web.Dispose();
}
}
}
あなたの状況に応じてこれを行うには2つの方法があります。
サイトが既に存在している場合は、サイトを繰り返してWebパーツを追加する必要があります。
http://blogs.msdn.com/tconte/archive/2007/01/18/programtally-adding-web-parts-to-a-page.aspx
サイトが存在しない場合は、サイトテンプレートにWebパーツを追加できます。
https://stackoverflow.com/questions/234302/how-to-add-a-web-part-page-to-a-site-definition