このコードを自動的に実行するには、このコードをWebイベントハンドラー(ListAdded)に追加します。そのコードでは、リストタイプがディスカッションであるかどうかを確認する必要があります。イベントレシーバーでは、Webパーツを追加するSPWebと、使用するリスト(この例では連絡先リスト)への参照を取得する必要があります。次に、ListViewWebPartクラスのインスタンスを作成します。このインスタンスで、ZoneID、ListName、およびViewGuidを設定できます。これは注意が必要な部分です。ListNameプロパティには、リストの名前ではなく、リストのID(GUID)を含める必要があります。ただし、ListNameプロパティは文字列型であるため、.ToString( "B")。ToUpper()を使用してリストGUIDを文字列に変換する必要があります。ViewGuidについても同じことが言えます。最後に、Webパーツを追加するページ(この例ではホームページ、default.aspx)のWebPartCollectionへの参照を取得する必要があります。これで、Addメソッドを使用してWebパーツを追加できます。
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
// Get a reference to a web and a list
SPSite site = new SPSite("http://localhost:8000");
SPWeb web = site.OpenWeb();
SPList list = web.Lists["Contacts"];
// Instantiate the web part
ListViewWebPart wp = new ListViewWebPart();
wp.ZoneID = "Left";
wp.ListName = list.ID.ToString("B").ToUpper();
wp.ViewGuid = list.DefaultView.ID.ToString("B").ToUpper();
// Get the web part collection
SPWebPartCollection coll =
web.GetWebPartCollection("default.aspx",
Storage.Shared);
// Add the web part
coll.Add(wp);