次の方法で共有


例: リスト アイテム イベント ハンドラーを作成する

最終更新日: 2010年4月9日

適用対象: SharePoint Foundation 2010

次の例は、イベント ハンドラーの基本的な作成手順を示しています。この例では、リスト アイテムが削除される前またはアイテムが追加された後にイベント ハンドラーがコードを実行します。この例では、お知らせリストで新しいアイテムの本文にテキストを追加し、既存のアイテムを削除する操作を取り消します。

Microsoft Visual Studio でクラス ライブラリを作成することによってイベント ハンドラー アセンブリを作成します。次の例のように、Microsoft.SharePoint.dll への参照を追加し、Microsoft.SharePoint.SPItemEventReceiver 基本クラスから継承します。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;

namespace MyEventHandlers

{
    public class SimpleEventHandler : SPItemEventReceiver
    {
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SharePoint

Namespace MyEventHandlers

    Public Class SimpleEventHandler
        Inherits SPItemEventReceiver
    End Class
End Namespace

リスト内でアクションが発生したときにクラスのオブジェクトがインスタンス化されます。開発者は、処理するイベント用に基本クラスのメソッドをオーバーライドします。オーバーライドできる SPItemEventReceiver 基本クラスのメソッドは次のとおりです。

この例では、ItemDeletingItemAdded という 2 つのメソッドをオーバーライドしています。"-ing" という接尾辞は、アクションが発生する前にイベントが処理されることを示し、"-ed" という接尾辞は、アクションが発生した後でイベントが処理されることを示します。

public override void ItemDeleting(SPItemEventProperties properties)
{
    properties.Cancel = true;
    properties.ErrorMessage = "Deleting is not supported.";
}
Public Overrides Sub ItemDeleting(ByVal properties As SPItemEventProperties)
        properties.Cancel = True
        properties.ErrorMessage = "Deleting is not supported."
End Sub

リスト アイテムに関連付けられているデータは、ListItem プロパティに含まれています。これらのプロパティ値へのアクセスには、AfterProperties プロパティ バッグを使用します。

オーバーライドする必要がある 2 つ目のメソッドは、ItemAdded です。次の例では、ListItem プロパティを使用して、新しいリスト アイテムを表すオブジェクトを返し、そのアイテムの本文を変更します。

public override void ItemAdded(SPItemEventProperties properties)
{
    SPListItem oItem = properties.ListItem;
    oItem["Body"] = "Body text maintained by the system.";
    oItem.Update();
}
Public Overrides Sub ItemAdded(ByVal properties As SPItemEventProperties)
    Dim oItem As SPListItem = properties.ListItem
    oItem("Body") = "Body text maintained by the system."
    oItem.Update()
End Sub

SharePoint Foundation イベント ハンドラーのバインド」の説明に従って、ItemDeleting イベント レシーバーと ItemAdded イベント レシーバーの両方を登録する必要があります。

関連項目

タスク

[方法] イベント ハンドラ フィーチャーを作成する

概念

SharePoint Foundation イベント ハンドラーのバインド

イベント登録

データ更新のためのセキュリティ検証と投稿の作成

権限の昇格

フィーチャーの使用