L'esempio mostra come utilizzare gli event handler di una lista o document library in SharePoint 2007 (WSS3 - MOSS).
In questo esempio semplicemente aggiungo ad ogni modifica del testo il dato impostato nell'event handler (proprietà Data dell'oggetto SPEventReceiverDefinition vedi dopo).

C#

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

namespace WebPartTest
{
    public class EventTest : SPItemEventReceiver
    {
        public override void ItemUpdating(SPItemEventProperties properties)
        {
            try
            {
                this.DisableEventFiring();

                //get event data
                string msgData = properties.ReceiverData;                   
                SPItemEventDataCollection data = properties.AfterProperties;
                //change field with event data info
                data["Title"] = string.Format("{0} ({1})", data["Title"] as string, msgData);

                properties.Cancel = false;
            }
            catch (Exception ex)
            {
                properties.ErrorMessage = "Error in event";
                properties.Cancel = true;
            }
            finally
            {
                this.EnableEventFiring();
            }
        }
    }
}
per aggiungere l'evento ad una lista creare un progetto di tipo cosole ed eseguire il seguente codice

C#

SPWeb web = ... inserire il codice per ottenere un oggetto SPWeb ...

SPList list =  web.Lists["Test"];
//modificare in base al proprio assembly
String sAssembly = "SgartEventTestDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=92225598c815612d";
String sClass = "Sgart.EventTest";

//remove all event
while (list.EventReceivers.Count > 0)
    list.EventReceivers[0].Delete();

//add new event
SPEventReceiverDefinition evt = list.EventReceivers.Add();
evt.Assembly = sAssembly;
evt.Class = sClass;
evt.Type = SPEventReceiverType.ItemUpdating;
evt.SequenceNumber = 1000;
evt.Name = "SgartEventTest";
evt.Data = "sgart";  //imposto o dati da passare all'event handler
evt.Update();
Tags:
SharePoint498 SharePoint 2007218
Potrebbe interessarti anche: