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
Validación de seguridad y realización de envíos para actualizar datos