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
Sicherheitsüberprüfung und POSTs zum Aktualisieren von Daten