Exemple : création d’un gestionnaire d’événements Élément de liste
Dernière modification : vendredi 9 avril 2010
S’applique à : SharePoint Foundation 2010
L'exemple suivant présente les étapes de base permettant de créer un gestionnaire d'événements. Dans cet exemple, le gestionnaire d'événements exécute le code avant qu'un élément de liste soit supprimé ou ajouté. L'exemple fonctionne sur les listes d'annonce, l'ajout de texte dans le corps de nouveaux éléments et l'annulation tente de supprimer des éléments existants.
Vous créez un assembly de gestionnaire d’événements dans Microsoft Visual Studio en créant une bibliothèque de classes. Vous ajoutez la référence à Microsoft.SharePoint.SPItemEventReceiver et héritez de la classe de base, comme illustré dans l’exemple suivant.
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
Un objet de votre classe est instancié lorsque des actions se produisent à l’intérieur de la liste. En tant que développeur, vous substituez les méthodes de la classe de base pour les événements que vous souhaitez gérer. Les méthodes de la classe SPItemEventReceiver que vous pouvez substituer sont les suivantes :
L’exemple substitue deux méthodes : ItemDeleting et ItemAdded. N’oubliez pas que le suffixe « -ing » indique que l’événement est géré de manière synchrone avant que l’action ne se produise, tandis que le suffixe « -ed » indique que l’événement est géré de manière asynchrone après, une fois que l’action s’est produite.
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
Les données associées à l’élément de liste sont contenues dans la propriété ListItem. Vous pouvez accéder à ces valeurs de propriété en utilisant le conteneur de propriétés AfterProperties.
La deuxième méthode que vous devez substituer est ItemAdded. L’exemple suivant utilise la propriété ListItem pour renvoyer un objet qui représente le nouvel élément de liste, puis modifie le texte du corps de l’élément.
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
Vous devez inscrire les récepteurs d’événements ItemDeleting et ItemAdded, comme décrit dans Liaison d’un gestionnaire d’événements SharePoint Foundation
Voir aussi
Tâches
Procédure : créer une fonctionnalité Gestionnaire d'événements
Concepts
Liaison d’un gestionnaire d’événements SharePoint Foundation
Validation de la sécurité et utilisation des publications pour la mise à jour des données