Clase SPItemEventReceiver

Proporciona métodos para interceptar los eventos que se producen en los elementos. Nunca se crea una instancia de esta clase.

Jerarquía de la herencia

System.Object
  Microsoft.SharePoint.SPEventReceiverBase
    Microsoft.SharePoint.SPItemEventReceiver

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Public Class SPItemEventReceiver _
    Inherits SPEventReceiverBase
'Uso
Dim instance As SPItemEventReceiver
public class SPItemEventReceiver : SPEventReceiverBase

Comentarios

No se crea una instancia de esta clase, pero la clase de receptor de eventos de elemento de un controlador de eventos personalizado debe derivar de esta clase y reemplazar sus métodos para los tipos de eventos que se controlan.

Si un elemento se mueve, se trata de la misma forma que un elemento que ha sido eliminado y luego agregado.

se garantizan que las propiedades Before y After para registrar eventos en documentos, pero Before propiedades no están disponibles para eventos en elementos de lista.

Ejemplos

En el ejemplo de código siguiente se utiliza esta clase para agregar un elemento a una lista de anuncios especificada cada vez que se agrega un anexo a una lista.

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

Nota

Algunos objetos que implementan la interfaz de IDisposable y se debe evitar mantener estos objetos en la memoria cuando ya no son necesarios. Para obtener información sobre buenas prácticas de codificación, vea Disposing Objects.

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SPItemEventReceiver

Espacio de nombres Microsoft.SharePoint