イベント レシーバーを SharePoint 2010 リストに追加する
SharePoint 2010 での Web 開発の概要: イベント レシーバーをカスタム SharePoint 2010 リストに接続する方法について解説します。
最終更新日: 2011年1月12日
適用対象: Office 2010 | SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010
この演習では、イベント レシーバーをカスタム Microsoft SharePoint 2010 リストに追加し、リスト内のアイテムを削除しようとしたときにトリガーされるようにします。このタスクを完了するには、以下の作業を実行します。
リスト定義プロジェクトを開く
イベント レシーバー コードを追加する
ソリューションをテストする
注意
この演習では、Bugs というタイトルのカスタム リスト プロジェクトを Microsoft Visual Studio 2010 に既に作成済みであるものと想定しています。カスタム リスト定義プロジェクトの作成方法については、クイック ノート「SharePoint 2010 にカスタム リスト定義を作成する」で説明しています。
リスト定義プロジェクトを開く
このタスクでは、Visual Studio 2010 でリスト定義プロジェクトを開きます。
リスト定義プロジェクトを開くには
Visual Studio 2010 を起動します。
[ファイル] メニューで [開く] をポイントし、[プロジェクト/ソリューション] をクリックします。
リスト定義プロジェクト ファイル (Bugs.sln) に移動して、[開く] をクリックします。
イベント レシーバー コードを追加する
このタスクでは、イベント レシーバーを作成してリスト定義に接続します。このイベント レシーバーはバグ アイテムの削除を防ぎ、メッセージを表示するものです。
イベント レシーバーをリスト定義に追加するには
ソリューション エクスプローラーで [Bugs] ノードを右クリックし、[追加] をポイントし、[新しいアイテム] をクリックします。
[新しいプロジェクト] ダイアログ ウィンドウの [インストールされているテンプレート] セクションで、[Visual C#]、[SharePoint]、[2010] の順にクリックします。
プロジェクト アイテムから [イベント レシーバー] をクリックします。
[名前] ボックスに「BugListItemEvent」と入力して、[追加] をクリックします。
SharePoint カスタマイズ ウィザードで、[項目が削除されています] オプションを選択して、[完了] をクリックします。
ソリューション エクスプローラーで [BugListItemEvent] を展開して、Elements.xml ファイルを開きます。
イベント レシーバーがカスタム ファイルにのみバインドされるよう、Receivers 要素内の ListTemplateId 属性が 10001 に設定されていることを確認します。
ソリューション エクスプローラーで [BugListItemEvent] を展開して、BugListItemEvent.cs を開きます。ItemDeleting メソッドが上書きされています。
以下のコードを ItemDeleting メソッドの本文内の base.ItemDeleting(properties); ステートメントの後に挿入します。このコードは、アイテムの削除を防ぎ、エラー メッセージを表示します。
try { properties.Cancel = true; properties.ErrorMessage = "Bugs can only be resolved not deleted!"; } catch (Exception ex) { return; } finally { this.EventFiringEnabled = true; }
ソリューション エクスプローラーで [Bugs] ノードを展開して、[配置] をクリックします。配置エラー メッセージが表示された場合は、[自動的に解決] をクリックします。
指定した Web サイトを開きます。
ホーム ページの左側のナビゲーション ウィンドウで、[Bugs] リストをクリックします。
[リスト ツール] タブで [アイテム] をクリックし、[新しいアイテム] ドロップダウン リストで [バグ アイテム] をクリックします。[Bugs - 新しいアイテム] 画面が表示されます。
該当するボックスに情報を入力し、[保存] をクリックして、バグを作成します。
次に、アイテムの削除を試みてください。図 1 に示すようなメッセージが表示されます。
図 1. アイテムを削除しようとしたことによって表示されるエラー メッセージ
ソリューションをテストする
このタスクでは、まずカスタム リストにアイテムを作成し、そのアイテムの削除を試みることによってイベント レシーバーをトリガーします。
ソリューションをテストするには
リスト定義プロジェクトで指定した Web サイトを開きます。
ホーム ページの左側のナビゲーション ウィンドウで、[Bugs] リストをクリックします。
[リスト ツール] タブで [アイテム] をクリックし、[新しいアイテム] ドロップダウン リストで [バグ アイテム] をクリックします。[Bugs - 新しいアイテム] 画面が表示されます。
該当するボックスに情報を入力し、[保存] をクリックして、バグを作成します。
次に、アイテムの削除を試みてください。図 1 に示すようなメッセージが表示されます。