SPItemEventReceiver - Classe
Fournit des méthodes pour l'interception d'événements qui se produire à des éléments. Cette classe n'est jamais instanciée.
Hiérarchie d’héritage
System.Object
Microsoft.SharePoint.SPEventReceiverBase
Microsoft.SharePoint.SPItemEventReceiver
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public Class SPItemEventReceiver _
Inherits SPEventReceiverBase
'Utilisation
Dim instance As SPItemEventReceiver
public class SPItemEventReceiver : SPEventReceiverBase
Remarques
Cette classe n'est pas instanciée mais la classe de récepteur d'événements article d'un gestionnaire d'événements personnalisé doit dériver de cette classe et substituer ses méthodes pour les types d'événements qui sont gérés.
Si un élément est déplacé, il est traité de la même façon sous la forme d'un élément a été supprimé, puis ajouté.
les propriétés Before et After sont garanties pour des événements de publication sur les documents, mais les propriétés Before ne sont pas disponibles pour des événements de publication sur les éléments de liste.
Exemples
L'exemple de code suivant utilise cette classe pour ajouter un élément à une liste d'annonces spécifiée chaque fois qu'une pièce jointe est ajoutée à la liste.
using System;
using Microsoft.SharePoint;
namespace Example_Namespace
{
public class Class_Name : SPItemEventReceiver
{
public override void ItemAttachmentAdded(SPItemEventProperties properties)
{
using(SPSite oSiteCollectionEvent = new SPSite(properties.SiteId))
{
SPWeb oSiteEvent = oSiteCollectionEvent.OpenWeb(properties.RelativeWebUrl);
SPListItemCollection oItemsEvent = oSiteEvent.Lists[properties.ListTitle].Items;
}
using(SPSite oSiteCollection = new SPSite("http://Top_Site"))
{
SPWeb oWebsite = oSiteCollection.OpenWeb("Website_Name");
SPList oList = oWebsite.Lists["Announcements"];
SPListItemCollection collListItems = oList.Items;
SPListItem oItem = collListItems.Add();
oItem["Title"] = properties.UserDisplayName + " added an attachment to " + oItemsEvent[properties.ListItemId].Title + " in list " + properties.ListTitle + " at " + properties.WebUrl;
oItem.Update();
}
}
}
}
Imports System
Imports Microsoft.SharePoint
Namespace Example_Namespace
Public Class Class_Name
Inherits SPItemEventReceiver
Public Overrides Sub ItemAttachmentAdded(ByVal properties As SPItemEventProperties)
Using oSiteCollectionEvent As New SPSite(properties.SiteId)
Dim oSiteEvent As SPWeb = oSiteCollectionEvent.OpenWeb(properties.RelativeWebUrl)
Dim oItemsEvent As SPListItemCollection = oSiteEvent.Lists(properties.ListTitle).Items
End Using
Using oSiteCollection As New SPSite("http://Top_Site")
Dim oWebsite As SPWeb = oSiteCollection.OpenWeb("Website_Name")
Dim oList As SPList = oWebsite.Lists("Announcements")
Dim collListItems As SPListItemCollection = oList.Items
Dim oItem As SPListItem = collListItems.Add()
oItem("Title") = properties.UserDisplayName & " added an attachment to " & oItemsEvent(properties.ListItemId).Title & " in list " & properties.ListTitle & " at " & properties.WebUrl
oItem.Update()
End Using
End Sub
End Class
End Namespace
Notes
Certains objets implémentent l'interface IDisposable , et vous devez éviter de conserver ces objets dans la mémoire après que qu'ils ne sont plus nécessaires. Pour plus d'informations sur les bonnes pratiques de codage, consultez Disposing Objects.
Cohérence de thread
Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.