方法: イベント レシーバーを作成する
イベント レシーバーは、リストやリスト アイテムなどの SharePoint アイテム で発生したイベントに応答できるようにするためのクラスです。 他のユーザーによって予定表が変更されたり、連絡先リストから名前が削除されたりすると、イベント レシーバーのコードがトリガーされます。
ここでは、次の作業について説明します。
- リスト インスタンスにイベント レシーバーを追加する。
この手順を実行するには、次のコンポーネントが必要です。
サポート対象エディションの Microsoft Windows および SharePoint。 詳細については、「SharePoint ソリューションの開発要件」を参照してください。
Visual Studio 2010.
さらに、「チュートリアル: カスタムのフィールド、コンテンツ タイプ、リスト定義、およびリスト インスタンスの作成」のトピックの手順も完了する必要があります。
イベント レシーバーの追加
「チュートリアル: カスタムのフィールド、コンテンツ タイプ、リスト定義、およびリスト インスタンスの作成」で作成したプロジェクトには、カスタム フィールド、カスタム リスト定義 (そのリストのインスタンスを含む)、およびコンテンツ タイプが含まれています。 今度は、そのプロジェクトにイベント レシーバーを追加します。 次の手順では、単純なイベント ハンドラー (イベント レシーバー) をリスト インスタンスに追加します。
リスト インスタンスにイベント レシーバーを追加するには
「チュートリアル: カスタムのフィールド、コンテンツ タイプ、リスト定義、およびリスト インスタンスの作成」で作成したプロジェクトを開きます。
そのプロジェクトにイベント レシーバーを追加します。 これを行うには、ソリューション エクスプローラーで対象のプロジェクト ノードをクリックし、[プロジェクト] メニューの [新しい項目の追加] を選択します。
[Visual C#] または [Visual Basic] の [SharePoint] ノードを展開して、[2010] をクリックします。
[テンプレート] ペインで [イベント レシーバー] を選択し、「TestEventReceiver1」という名前を付けます。
SharePoint カスタマイズ ウィザードが表示されます。
[イベント レシーバー設定の選択] ページで、イベント レシーバーの種類として [リスト項目イベント] を選択します。
[イベント ソース項目] を「CustomField1 - ListDefinition1」に設定します。
処理するイベントの一覧で、[項目が追加されました] の横のチェック ボックスをオンにし、[完了] をクリックします。
新しいイベント レシーバー コード ファイルには、ItemAdded という名前のメソッドが 1 つ含まれています。 連絡先一覧に連絡先が追加されるたびに、[Patient Name] の既定値として "Scott Brown" が使用されるように、このメソッドにコードを追加します。 これを行うには、既存の ItemAdded メソッドを次のコードに置き換えます。
Public Overrides Sub ItemAdded(ByVal properties As SPItemEventProperties) properties.ListItem("Patient Name") = "Scott Brown" properties.ListItem.Update() MyBase.ItemAdded(properties) End Sub
public override void ItemAdded(SPItemEventProperties properties) { properties.ListItem["Patient Name"] = "Scott Brown"; properties.ListItem.Update(); base.ItemAdded(properties); }
F5 キーを押してコードを実行し、Web ブラウザーに SharePoint サイトを表示します。
クイック起動バーの [CustomField1 - ListInstance1] をクリックします。
これがリスト定義のリスト インスタンスです。 リスト インスタンスの列として Patient Name フィールドはまだ表示されていません。
[リスト ツール] タブで、ページの一番上にある [リスト] をクリックし、リボンの [このビューの変更] をクリックします。
使用できる列名の一覧で [Patient Name] を選択し、[OK] をクリックします。 これで、Patient Name フィールドがリスト インスタンスに表示されます。
ページの一番上にある [リスト ツール] タブで、[項目] をクリックし、[新しい項目] をクリックして、データ入力フォームを表示します。
フィールドにデータを入力し、リスト インスタンスの [新しい項目] ダイアログ ボックスで [保存] をクリックします。
[OK] をクリックすると、[Patient Name] 列に Scott Brown という値が自動的に入力されます。