Freigeben über


Beispiel: Erstellen eines Listenelement-Ereignishandlers

Letzte Änderung: Freitag, 9. April 2010

Gilt für: SharePoint Foundation 2010

Im folgenden Beispiel werden die grundlegenden Schritte zum Erstellen eines Ereignishandlers gezeigt. In diesem Beispiel wird durch den Ereignishandler vor dem Löschen eines Listenelements oder nach dem Hinzufügen eines Elements Code ausgeführt. Im Beispiel wird in Ankündigungslisten dem Textkörper neuer Elemente Text hinzugefügt, und Versuche zum Löschen vorhandener Elemente werden abgebrochen.

Sie erstellen eine Ereignishandlerassembly in Microsoft Visual Studio, indem Sie eine Klassenbibliothek erstellen. Fügen Sie wie im folgenden Beispiel gezeigt einen Verweis auf Microsoft.SharePoint.dll hinzu, und erben Sie von der Microsoft.SharePoint.SPItemEventReceiver-Basisklasse.

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

Ein Objekt Ihrer Klasse wird instanziiert, wenn in der Liste Aktionen auftreten. Als Entwickler setzen Sie die Methoden der Basisklasse für die Ereignisse, die behandelt werden sollen, außer Kraft. Zu den Methoden der SPItemEventReceiver-Basisklasse, die Sie außer Kraft setzen können, gehören folgende:

Im Beispiel werden zwei Methoden außer Kraft gesetzt: ItemDeleting und ItemAdded. Denken Sie daran, dass das Suffix "ing" angibt, dass das Ereignis behandelt wird, bevor die Aktion auftritt, während das Suffix "-ed" angibt, dass das Ereignis nach dem Auftreten der Aktion behandelt wird.

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

Dem Listenelement zugeordnete Daten sind in der ListItem-Eigenschaft enthalten. Sie können mithilfe des AfterProperties-Eigenschaftenbehälters auf diese Eigenschaftswerte zugreifen.

Als zweite Methode müssen Sie die ItemAdded-Methode außer Kraft setzen. Im folgenden Beispiel wird die ListItem-Eigenschaft verwendet, um ein Objekt zurückzugeben, das das neue Listenelement darstellt. Anschließend wird der Textkörper des Elements geändert.

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

Sie müssen die Ereignisempfänger ItemDeleting und ItemAdded gemäß der Beschreibung in Binden eines SharePoint Foundation-Ereignishandlers registrieren.

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Ereignishandlerfeatures

Konzepte

Binden eines SharePoint Foundation-Ereignishandlers

Ereignisregistrierungen

Sicherheitsüberprüfung und POSTs zum Aktualisieren von Daten

Rechteerweiterungen

Verwenden von Features