方法: イベント レシーバーを作成する

イベント レシーバーは、リストやリスト アイテムなどの SharePoint アイテム で発生したイベントに応答できるようにするためのクラスです。 他のユーザーによって予定表が変更されたり、連絡先リストから名前が削除されたりすると、イベント レシーバーのコードがトリガーされます。

ここでは、次の作業について説明します。

  • リスト インスタンスにイベント レシーバーを追加する。

この手順を実行するには、次のコンポーネントが必要です。

さらに、「チュートリアル: カスタムのフィールド、コンテンツ タイプ、リスト定義、およびリスト インスタンスの作成」のトピックの手順も完了する必要があります。

イベント レシーバーの追加

チュートリアル: カスタムのフィールド、コンテンツ タイプ、リスト定義、およびリスト インスタンスの作成」で作成したプロジェクトには、カスタム フィールド、カスタム リスト定義 (そのリストのインスタンスを含む)、およびコンテンツ タイプが含まれています。 今度は、そのプロジェクトにイベント レシーバーを追加します。 次の手順では、単純なイベント ハンドラー (イベント レシーバー) をリスト インスタンスに追加します。

リスト インスタンスにイベント レシーバーを追加するには

  1. チュートリアル: カスタムのフィールド、コンテンツ タイプ、リスト定義、およびリスト インスタンスの作成」で作成したプロジェクトを開きます。

  2. そのプロジェクトにイベント レシーバーを追加します。 これを行うには、ソリューション エクスプローラーで対象のプロジェクト ノードをクリックし、[プロジェクト] メニューの [新しい項目の追加] を選択します。

  3. [Visual C#] または [Visual Basic][SharePoint] ノードを展開して、[2010] をクリックします。

  4. [テンプレート] ペインで [イベント レシーバー] を選択し、「TestEventReceiver1」という名前を付けます。

    SharePoint カスタマイズ ウィザードが表示されます。

  5. [イベント レシーバー設定の選択] ページで、イベント レシーバーの種類として [リスト項目イベント] を選択します。

  6. [イベント ソース項目] を「CustomField1 - ListDefinition1」に設定します。

  7. 処理するイベントの一覧で、[項目が追加されました] の横のチェック ボックスをオンにし、[完了] をクリックします。

  8. 新しいイベント レシーバー コード ファイルには、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);
    }
    
  9. F5 キーを押してコードを実行し、Web ブラウザーに SharePoint サイトを表示します。

  10. クイック起動バーの [CustomField1 - ListInstance1] をクリックします。

    これがリスト定義のリスト インスタンスです。 リスト インスタンスの列として Patient Name フィールドはまだ表示されていません。

  11. [リスト ツール] タブで、ページの一番上にある [リスト] をクリックし、リボンの [このビューの変更] をクリックします。

  12. 使用できる列名の一覧で [Patient Name] を選択し、[OK] をクリックします。 これで、Patient Name フィールドがリスト インスタンスに表示されます。

  13. ページの一番上にある [リスト ツール] タブで、[項目] をクリックし、[新しい項目] をクリックして、データ入力フォームを表示します。

  14. フィールドにデータを入力し、リスト インスタンスの [新しい項目] ダイアログ ボックスで [保存] をクリックします。

    [OK] をクリックすると、[Patient Name] 列に Scott Brown という値が自動的に入力されます。

参照

その他の技術情報

SharePoint ソリューションの開発