- Guida introduttiva
- Amministrazione e monitoraggio SharePoint 2007
- Deployment
- Introduzione a CAML
- Introduzione all’Object Model
- Usare le Features e Solutions
- Utilizzo dei Site e dei Web
- Introduzione gestione SPList degli SPWeb
- Business Data Catalog
- I content type. Cosa sono e come utilizzarli
- Gestione degli eventi delle liste
Gli event receiver possono essere deployiate in 3 da:
- Programma
- Feature
- Content type
Programma
Se si vuole associare il proprio event receiver ad una sola instanza di una lista invece che a tutte le liste, possiamo registrare il nostro event receiver programmaticamente:
SPWeb webSite = new SPSite("http://win2k3r2lab").OpenWeb();
SPList theList = webSite.Lists["Tasks"];
SPEventReceiverDefinition newReceiver = theList.EventReceivers.Add();
newReceiver.Class = "Receiver.ReceiverClass";
newReceiver.Assembly = "Receiver,Version=1.0.0.0,Culture=neutral,PublicKeyToken=abc123abc123abc";
newReceiver.Sequence = 5000;
newReceiver.Type = SPEventReceiverType.ItemUpdated;newReceiver.Update();
da notare dalla 6 alla 8 per associare l’event receiver alla lista.
Feature
Deployiando tramite Feature, abbiamo la possibilità di associare gli event receivers al tipo di lista sulle quali vogliamo lavorare, specificando l’ID del template della lista.
Ecco un esempio:
Feature.xml
<feature event="" id="{EF0917F4-5ED8-40b1-9A37-585BCDE9DB63}" item="" scope="Web" title="List" xmlns="http://schemas.microsoft.com/sharepoint/">
<elementmanifests>
<elementmanifest location="Elements.xml"></elementmanifest>
</elementmanifests>
</feature>
Elements.xml
<elements xmlns="http://schemas.microsoft.com/sharepoint/">
<receivers listtemplateid="107">
<receiver>
<name>EventLogger</name>
<type>ItemAdded</type>
<sequencenumber>10000</sequencenumber>
<assembly>EventLogger, Version=1.0.0.0, Culture=neutral,PublicKeyToken=5d1d751131e0aacf</assembly>
<class>EventLogger.ListEventLogger</class>
<data></data>
<filter></filter>
</receiver>
<receiver>
<name>EventLogger</name>
<type>ItemUpdated</type>
<sequencenumber>10000</sequencenumber>
<assembly>EventLogger, Version=1.0.0.0, Culture=neutral,PublicKeyToken=5d1d751131e0aacf</assembly>
<class>EventLogger.ListEventLogger</class>
<data></data>
<filter></filter>
</receiver>
<receiver>
<name>EventLogger</name>
<type>ItemDeleted</type>
<sequencenumber>10000</sequencenumber>
<assembly>EventLogger, Version=1.0.0.0, Culture=neutral,PublicKeyToken=5d1d751131e0aacf</assembly>
<class>EventLogger.ListEventLogger</class>
<data></data>
<filter></filter>
</receiver>
</receivers>
</elements>
Per una lista completa degli ID dei list template fate riferimento alle msdn.
Content Type
Deployiare il tutto tramite i content type segue la stessa logica del deploiare una feature.Bisognerà quindi creare una dll con strongly name, firmare l’assembly e salvarlo in GAC del server di destinazione.
No comments:
Post a Comment