Freigeben über


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.

Wichtiger HinweisWichtig

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

Binden eines SharePoint Foundation-Ereignishandlers