次の方法で共有


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

SharePoint クイックスタート バナー
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 でリスト定義プロジェクトを開きます。

リスト定義プロジェクトを開くには

  1. Visual Studio 2010 を起動します。

  2. [ファイル] メニューで [開く] をポイントし、[プロジェクト/ソリューション] をクリックします。

  3. リスト定義プロジェクト ファイル (Bugs.sln) に移動して、[開く] をクリックします。

イベント レシーバー コードを追加する

このタスクでは、イベント レシーバーを作成してリスト定義に接続します。このイベント レシーバーはバグ アイテムの削除を防ぎ、メッセージを表示するものです。

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

  1. ソリューション エクスプローラーで [Bugs] ノードを右クリックし、[追加] をポイントし、[新しいアイテム] をクリックします。

  2. [新しいプロジェクト] ダイアログ ウィンドウの [インストールされているテンプレート] セクションで、[Visual C#]、[SharePoint]、[2010] の順にクリックします。

  3. プロジェクト アイテムから [イベント レシーバー] をクリックします。

  4. [名前] ボックスに「BugListItemEvent」と入力して、[追加] をクリックします。

  5. SharePoint カスタマイズ ウィザードで、[項目が削除されています] オプションを選択して、[完了] をクリックします。

  6. ソリューション エクスプローラーで [BugListItemEvent] を展開して、Elements.xml ファイルを開きます。

  7. イベント レシーバーがカスタム ファイルにのみバインドされるよう、Receivers 要素内の ListTemplateId 属性が 10001 に設定されていることを確認します。

  8. ソリューション エクスプローラーで [BugListItemEvent] を展開して、BugListItemEvent.cs を開きます。ItemDeleting メソッドが上書きされています。

  9. 以下のコードを 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;
    }
    
  10. ソリューション エクスプローラーで [Bugs] ノードを展開して、[配置] をクリックします。配置エラー メッセージが表示された場合は、[自動的に解決] をクリックします。

  11. 指定した Web サイトを開きます。

  12. ホーム ページの左側のナビゲーション ウィンドウで、[Bugs] リストをクリックします。

  13. [リスト ツール] タブで [アイテム] をクリックし、[新しいアイテム] ドロップダウン リストで [バグ アイテム] をクリックします。[Bugs - 新しいアイテム] 画面が表示されます。

  14. 該当するボックスに情報を入力し、[保存] をクリックして、バグを作成します。

  15. 次に、アイテムの削除を試みてください。図 1 に示すようなメッセージが表示されます。

    図 1. アイテムを削除しようとしたことによって表示されるエラー メッセージ

    削除を試行したときのエラー メッセージ

ソリューションをテストする

このタスクでは、まずカスタム リストにアイテムを作成し、そのアイテムの削除を試みることによってイベント レシーバーをトリガーします。

ソリューションをテストするには

  1. リスト定義プロジェクトで指定した Web サイトを開きます。

  2. ホーム ページの左側のナビゲーション ウィンドウで、[Bugs] リストをクリックします。

  3. [リスト ツール] タブで [アイテム] をクリックし、[新しいアイテム] ドロップダウン リストで [バグ アイテム] をクリックします。[Bugs - 新しいアイテム] 画面が表示されます。

  4. 該当するボックスに情報を入力し、[保存] をクリックして、バグを作成します。

  5. 次に、アイテムの削除を試みてください。図 1 に示すようなメッセージが表示されます。

次の手順