SharePoint 2010 にカスタム リスト定義を作成する
SharePoint 2010 での Web 開発の概要: カスタム リスト定義を SharePoint 2010 に作成して、イベント レシーバーを接続する方法について解説します。
最終更新日: 2011年1月12日
適用対象: SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010
この演習では、カスタム リスト定義を Microsoft SharePoint 2010 に作成し、リストの使用時にトリガーされるイベント レシーバーを作成します。このタスクを完了するには、以下の作業を実行します。
SharePoint リスト定義プロジェクトを作成する
SharePoint リスト定義をカスタマイズする
ソリューションをテストする
SharePoint リスト定義プロジェクトを作成する
このタスクでは、リスト定義 SharePoint 2010 プロジェクトを Microsoft Visual Studio 2010 に作成します。
SharePoint プロジェクトを作成するには
[スタート] メニュー、[すべてのプログラム]、[Microsoft Visual Studio 2010]、[Microsoft Visual Studio 2010] の順にクリックして、Visual Studio 2010 を起動します。
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ウィンドウの [インストールされているテンプレート] セクションで、[Visual C#]、[SharePoint]、[2010] の順にクリックします。
プロジェクト アイテムから [リスト定義] をクリックします。
[名前] ボックスに「Bugs」と入力して、[OK] をクリックします。
SharePoint カスタマイズ ウィザードで、この演習に使用するローカル Web サイト (https://localhost/SampleWebSite など) を入力します。
信頼レベルとして [ファーム ソリューションとして配置する] を選択し、[次へ] をクリックします。
[リスト定義の表示名] ボックスに「Bugs」と入力します。
[リスト定義の種類] ドロップダウン リストで [カスタム リスト] を選択します。
[このリスト定義のリスト インスタンスを追加する] チェック ボックスをオンにして、[完了] をクリックします。
SharePoint リスト定義をカスタマイズする
このタスクでは、リスト名、リストに保存するコンテンツ タイプ、および新しいフォーム、編集フォーム、表示フォームに表示するフィールドを変更して、リスト定義プロジェクト テンプレートをカスタマイズします。
リスト定義をカスタマイズするには
ソリューション エクスプローラーで [ListInstance1] を展開して、Elements.xml ファイルを開きます。
ListInstance 要素内で、Title 属性を Bugs に変更し、TemplateType 属性を 10001 に変更します。
ソリューション エクスプローラーで、Schema.xml を開く前に Elements.xml を開きます。
ListTemplate 要素内で、Type 属性を 10001 に変更し、DisallowContentTypes=”FALSE” 属性を追加します。
図 1 に示すように、以下の XML を Elements.xml ファイルの Elements 要素の先頭に挿入します。この XML は、リストに保存される Bug Item コンテンツ タイプを記述しています。
<!-- Describes content types. --> <ContentType ID="0x010089E3E6DB8C9B4B3FBB980447E313CE94" Name="Bug Item" Group="Custom Content Types" Description="Bug item content type." Version="0"> <FieldRefs> <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" /> <FieldRef ID="{cb55bba1-81a9-47b6-8e6c-6a7da1d25602}" /> <FieldRef ID="{0248c82f-9136-4b3a-b802-d0b77280b3bc}" /> <FieldRef ID="{aa4a82dd-5b32-4507-9874-4e1c7bca3279}" /> </FieldRefs> </ContentType> <!-- End describes content types. -->
図 1 に示すように、以下の XML を Elements.xml ファイルの Elements 要素の先頭に挿入します。この XML は、Bug Item コンテンツ タイプが使用するフィールドを記述しています。
<!-- Describes fields in bug list. --> <Field Type="Note" DisplayName="Description" Required="FALSE" NumLines="6" RichText="FALSE" Sortable="FALSE" ID="{cb55bba1-81a9-47b6-8e6c-6a7da1d25602}" StaticName="BugDescription" Name="BugDescription" Group="Custom Columns" /> <Field Type="Text" DisplayName="Project" Required="FALSE" MaxLength="255" ID="{0248c82f-9136-4b3a-b802-d0b77280b3bc}" StaticName="BugProject" Name="BugProject" Group="Custom Columns" /> <Field Type="Text" DisplayName="Assigned To" Required="FALSE" MaxLength="255" ID="{aa4a82dd-5b32-4507-9874-4e1c7bca3279}" StaticName="BugAssignedTo" Name="BugAssignedTo" Group="Custom Columns" /> <!-- End describes fields in bug list. -->
図 1. 2 つのコード セクションが挿入された Elements.xml ファイル
ソリューション エクスプローラーで Schema.xml を開きます。
EnableContentTypes=”TRUE” 属性を Schema.xml ファイル内の List 要素に追加します。
図 2 に示すように、以下の XML を Schema.xml ファイルの ContentTypes 要素に挿入します。この XML は、このリストに保存される Bug Item コンテンツ タイプを記述しています。
<!-- Start Add. --> <ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313CE94" /> <!-- End Add. -->
図 2 に示すように、以下の XML を Fields 要素に挿入します。この XML は、リストに保存されるフィールドを記述しています。これらのフィールドは、前の手順で追加したコンテンツ タイプのフィールドに直接関連しています。
<!-- Start Add. --> <Field Type="Note" DisplayName="Description" Required="FALSE" NumLines="6" RichText="FALSE" Sortable="FALSE" ID="{cb55bba1-81a9-47b6-8e6c-6a7da1d25602}" StaticName="BugDescription" Name="BugDescription" Group="Custom Columns" /> <Field Type="Text" DisplayName="Project" Required="FALSE" MaxLength="255" ID="{0248c82f-9136-4b3a-b802-d0b77280b3bc}" StaticName="BugProject" Name="BugProject" Group="Custom Columns" /> <Field Type="Text" DisplayName="Assigned To" Required="FALSE" MaxLength="255" ID="{aa4a82dd-5b32-4507-9874-4e1c7bca3279}" StaticName="BugAssignedTo" Name="BugAssignedTo" -Group="Custom Columns" /> <!-- End Add. -->
図 2. ContentTypeRefs コードと Fields コードが挿入された Schema.xml
図 3 に示すように、以下の XML を BaseViewID="1" になっている 2 つ目のビューの ViewFields 要素に挿入します。この XML は、このビューにどのフィールドを表示するかを記述しています。BaseView 1 が既定のビューとして設定されています。これは、新しく作成されたフィールドが表示されるビューです。
<!-- Start Add. --> <FieldRef Name="BugDescription"></FieldRef> <FieldRef Name="BugProject"></FieldRef> <FieldRef Name="BugAssignedTo"></FieldRef> <!-- End Add. -->
図 3. Fields XML が挿入された Schema.xml
ソリューション エクスプローラーで [Bugs] ノードを右クリックして、[配置] をクリックします。
ソリューションをテストする
このタスクでは、バグを Bugs リストに追加して、ソリューションをテストします。
アイテムを Bugs リストに追加するには
指定した Web サイトを開きます。
ホーム ページの左側のナビゲーション ウィンドウで、[Bugs] リストをクリックします。
図 4 に示すように、[リスト ツール] タブで [アイテム] をクリックし、[新しいアイテム] ドロップダウン リストで [バグ アイテム] をクリックします。
図 4. [新しいアイテム] ドロップダウン リストの [バグ アイテム]
図 5 に示すように、[Bugs - 新しいアイテム] 画面が表示されます。
図 5. [新しいバグ アイテム] ダイアログ ボックス
[Bugs - 新しいアイテム] 画面で、[タイトル] ボックスに「Bug01」と入力します。
[説明] ボックスに「Who is going to track this bug?」と入力し、[プロジェクト] ボックスに「Writing developer articles」と入力して、[保存] をクリックします。