Erstellen eines Ereignishandlers
Letzte Änderung: Donnerstag, 8. April 2010
Gilt für: SharePoint Foundation 2010
Legen Sie zum Erstellen eines SharePoint Foundation-Ereignishandlers in Visual Studio ein neues Projekt vom Typ "Klassenbibliothek" an, und vererben Sie ihm die Eigenschaften einer Basisklassen für Ereignisempfänger. Sie sollten beim Auswählen der Basisklasse für Ereignisempfänger für die Vererbung sicherstellen, dass die Basisklasse sowohl für das Ereignis geeignet ist, das Sie erfassen möchten, als auch für den Ereignishost, an den es gebunden werden soll.
Im nachfolgenden Codebeispiel erstellen wir eine Ereignisempfängerdefinition namens ItemAdded, die Methoden der SPItemEventReceiver-Basisklasse verwendet und überschreibt. Wir verwenden diese Basisklasse, um Ereignisse zu erfassen, die beim Hinzufügen von Elementen zu einer Liste ausgelöst werden. Wenn wir stattdessen Ereignisse auf Websiteebene erfassen wollten, würden wir für die Vererbung die SPWebEventReceiver-Klasse verwenden.
Wichtig |
---|
Eine Tabelle mit SharePoint Foundation-Ereignissen, den für die Ereignisse geeigneten Ereignisempfängern sowie den Ereignishosts, die an alle Empfänger gebunden werden können, finden Sie unter Tabelle mit SharePoint-Ereignissen, -Ereignisempfängern und -Ereignishosts. |
Erstellen einer Ereignisempfängerdefinition
Nach der Erstellung des Projekts sollten Sie diesem zusätzlich zu den standardmäßigen using-Anweisungen des Projekts eine using Microsoft.SharePoint-Anweisung hinzufügen. In unserem Projekt erstellen wir den ERDefinition-Namespace und deklarieren eine öffentliche Klasse, ItemEvents, die wir von SPItemEventReceiver vererben.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace ERDefinition
{
public class ItemEvents : SPItemEventReceiver
...
Unser Beispielereignisempfänger sollte erkennen, wann einer Liste oder Dokumentbibliothek Elemente hinzugefügt werden, daher überschreiben wir die ItemAdded(SPItemEventProperties)-Methode der Basisklasse:
public override void ItemAdded(SPItemEventProperties properties)
Die Methode nutzt eine SPItemEventProperties-Instanz, die Informationen zu den Elementeigenschaften bereitstellt.
Wie Sie unten sehen können, führt der Ereignishandler in unserem Beispiel nur wenige Aktionen aus. Wir fügen dem Feld Titel des Listenelements lediglich einen Datums-/Zeitstempel an und rufen dann Update() auf.
{
SPListItem item = properties.ListItem;
item["Title"] = item["Title"] + " - " + DateTime.Now;
item.Update();
}
Nachdem wir nun die Ereignisempfängerdefinition erstellt haben, sollten wir den Ereignishandler an den Ereignishost binden. Die weitere Beschreibung dieses Prozesses finden Sie unter Binden eines SharePoint Foundation-Ereignishandlers.
Codeauflistung
Nachfolgend ist der vollständige Code für die oben angegebene Illustration aufgeführt.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace ERDefinition
{
public class ItemEvents : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
SPListItem item = properties.ListItem;
item["Title"] = item["Title"] + " - " + DateTime.Now;
item.Update();
}
}
}
Siehe auch
Aufgaben
Gewusst wie: Erstellen eines Ereignishandlerfeatures
Konzepte
Einführung in Ereignisse in SharePoint Foundation
Tabelle mit SharePoint-Ereignissen, -Ereignisempfängern und -Ereignishosts