Ejemplo: Creación de un controlador de eventos de elemento de lista

Última modificación: viernes, 09 de abril de 2010

Hace referencia a: SharePoint Foundation 2010

En el siguiente ejemplo se muestran los pasos básicos para crear un controlador de eventos. En este ejemplo, el controlador de eventos ejecuta el código antes de que se elimine un elemento de lista o después de agregar un elemento. El ejemplo se aplica a las listas de anuncios, mediante la adición de texto al cuerpo de elementos nuevos y la cancelación de los intentos de eliminar los elementos existentes.

Para crear un ensamblado del controlador de eventos en Microsoft Visual Studio, se debe crear una biblioteca de clases. Se debe agregar una referencia a Microsoft.SharePoint.dll y heredar desde la clase base Microsoft.SharePoint.SPItemEventReceiver, como se muestra en el siguiente ejemplo.

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

namespace MyEventHandlers

{
    public class SimpleEventHandler : SPItemEventReceiver
    {
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SharePoint

Namespace MyEventHandlers

    Public Class SimpleEventHandler
        Inherits SPItemEventReceiver
    End Class
End Namespace

Se crea una instancia de un objeto de su clase cuando se producen acciones en la lista. Como programador, puede invalidar los métodos de la clase base de SharePoint para los eventos que desee controlar. Los métodos de la clase base SPItemEventReceiver que se pueden invalidar son los siguientes:

En este ejemplo se van a invalidar dos métodos: ItemDeleting y ItemAdded. Recuerde que el sufijo "-ing" indica que se está controlando el evento antes de que la acción se produzca, y que el sufijo "-ed" indica que se está controlando el evento después de que la acción se produzca.

public override void ItemDeleting(SPItemEventProperties properties)
{
    properties.Cancel = true;
    properties.ErrorMessage = "Deleting is not supported.";
}
Public Overrides Sub ItemDeleting(ByVal properties As SPItemEventProperties)
        properties.Cancel = True
        properties.ErrorMessage = "Deleting is not supported."
End Sub

Los datos que se asocian al elemento de lista se incluyen en la propiedad ListItem. Puede obtener acceso a los valores de esta propiedad mediante el contenedor de propiedades AfterProperties.

El segundo método que se debe invalidar es ItemAdded. En el ejemplo siguiente se usa la propiedad ListItem para devolver un objeto que representa el nuevo elemento de lista y, a continuación, se modifica el texto del cuerpo del elemento.

public override void ItemAdded(SPItemEventProperties properties)
{
    SPListItem oItem = properties.ListItem;
    oItem["Body"] = "Body text maintained by the system.";
    oItem.Update();
}
Public Overrides Sub ItemAdded(ByVal properties As SPItemEventProperties)
    Dim oItem As SPListItem = properties.ListItem
    oItem("Body") = "Body text maintained by the system."
    oItem.Update()
End Sub

Debe registrar los receptores de eventos ItemDeleting e ItemAdded, tal como se describe en Enlace de un controlador de eventos de SharePoint Foundation.

Vea también

Tareas

Procedimiento para crear una característica de controlador de eventos

Conceptos

Enlace de un controlador de eventos de SharePoint Foundation

Registros de eventos

Validación de seguridad y realización de envíos para actualizar datos

Concesión de privilegio

Uso de características