Procédure pas à pas : ajout de récepteurs d'événements de fonctionnalité
Les récepteurs d'événements de fonctionnalité sont des méthodes prévues pour s'exécuter lorsque l'un des événements suivants ayant trait aux fonctionnalités se produit dans SharePoint :
Installation d'une fonctionnalité.
Activation d'une fonctionnalité.
Désactivation d'une fonctionnalité.
Suppression d'une fonctionnalité.
Cette procédure pas à pas montre comment ajouter un récepteur d'événements à une fonctionnalité dans un projet SharePoint. Elle prend en compte les tâches suivantes :
Création d'un projet vide avec un récepteur d'événements de fonctionnalité.
Gestion de la méthode FeatureDeactivating.
Utilisation du modèle d'objet du projet SharePoint pour ajouter une annonce à la liste Annonces.
Notes
Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.
Composants requis
Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :
Éditions de Microsoft Windows et SharePoint prises en charge. Pour plus d'informations, consultez Configuration requise pour développer des solutions SharePoint.
Visual Studio 2010.
Création d'un projet pour un récepteur d'événements de fonctionnalité
Commencez par créer un projet destiné à contenir le récepteur d'événements de fonctionnalité.
Pour créer un projet avec un récepteur d'événements de fonctionnalité
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Nouveau projet pour ouvrir la boîte de dialogue Nouveau projet.
Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis cliquez sur 2010.
Dans le volet Modèles, sélectionnez Projet vide.
Ce type de projet est destiné aux récepteurs d'événements de fonctionnalité, car il n'existe pas de modèle de projet pour eux.
Dans la zone Nom, tapez TestÉvénementFonctionnalité, puis cliquez sur OK pour afficher l'Assistant Personnalisation de SharePoint.
Dans la page Spécifier le site et le niveau de sécurité pour le débogage, entrez l'URL du site de serveur SharePoint auquel vous souhaitez ajouter le nouvel élément de champ personnalisé ou utilisez l'emplacement par défaut (http://<system name).
Dans la section Quel est le niveau de confiance de cette solution SharePoint ?, cliquez sur Déployer en tant que solution de batterie, puis sur Terminer.
Pour plus d'informations sur les différences entre les solutions bac à sable (sandbox) et les solutions de batterie, consultez Considérations sur les solutions bac à sable (sandbox).
Ajout d'un récepteur d'événements à la fonctionnalité
Il convient maintenant d'ajouter un récepteur d'événements à la fonctionnalité et de prévoir le code à exécuter en cas de désactivation de la fonctionnalité.
Pour ajouter un récepteur d'événements à la fonctionnalité
Créez une fonctionnalité en cliquant avec le bouton droit sur le nœud Fonctionnalités et en choisissant Ajouter une fonctionnalité.
Notez la présence de la fonctionnalité intitulée Feature1 sous le nœud Fonctionnalités.
Ajoutez un récepteur d'événements à la fonctionnalité en cliquant avec le bouton droit sur Feature1 dans le nœud Fonctionnalités, puis en choisissant Ajouter un récepteur d'événements.
Cela permet d'insérer un fichier de code sous Feature1. Dans le cas présent, il est nommé Feature1.EventReceiver.cs ou Feature1.EventReceiver.vb, selon le langage de développement de votre projet.
La classe de récepteur d'événements contient quatre méthodes commentées se comportant comme des événements. Remplacez la méthode FeatureDeactivating par la méthode suivante :
Public Overrides Sub FeatureDeactivating(ByVal properties As SPFeatureReceiverProperties) Try ' Get reference to SharePoint site. Dim site As SPSite = New SPSite("https://localhost") Dim web As SPWeb = site.OpenWeb("/") ' Get reference to Announcements list. Dim announcementsList As SPList = web.Lists("Announcements") ' Add new announcement to Announcements list. Dim oListItem As SPListItem = announcementsList.Items.Add oListItem("Title") = ("Deactivated Feature: " + properties.Definition.DisplayName) oListItem("Body") = (properties.Definition.DisplayName + (" was deactivated on: " + DateTime.Now.ToString)) oListItem.Update() Catch e As Exception Console.WriteLine(("Error: " + e.ToString)) End Try End Sub
public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { try { // Get reference to SharePoint site. SPSite site = new SPSite("https://localhost"); SPWeb web = site.OpenWeb("/"); // Get reference to Announcements list. SPList announcementsList = web.Lists["Announcements"]; // Add new announcement to Announcements list. SPListItem oListItem = announcementsList.Items.Add(); oListItem["Title"] = "Deactivated Feature: " + properties.Definition.DisplayName; oListItem["Body"] = properties.Definition.DisplayName + " was deactivated on: " + DateTime.Now.ToString(); oListItem.Update(); } catch (Exception e) { Console.WriteLine("Error: " + e.ToString()); } }
Test du récepteur d'événements de la fonctionnalité
Veuillez à présent désactiver la fonctionnalité pour tester si la méthode FeatureDeactivating produit une annonce dans la liste des annonces SharePoint.
Pour tester le récepteur d'événements de la fonctionnalité
Affectez à la propriété Configuration de déploiement active du projet la valeur Aucune activation.
Cela empêche l'activation de la fonctionnalité dans SharePoint et vous permet de déboguer les récepteurs d'événements de la fonctionnalité. Pour plus d'informations, consultez Débogage de solutions SharePoint.
Appuyez sur F5 pour exécuter le projet et le déployer sur SharePoint.
En haut de la page Web SharePoint, cliquez sur le bouton Actions du site, puis cliquez sur Paramètres du site.
Dans la section Actions du site de la page Paramètres du site, cliquez sur le lien Gérer les fonctionnalités du site.
Dans la page Fonctionnalités du site, cliquez sur le bouton Activer en regard de la fonctionnalité TestÉvénementFonctionnalité Feature1.
Dans la page Fonctionnalités du site, cliquez sur le bouton Désactiver en regard de la fonctionnalité TestÉvénementFonctionnalité Feature1. Cliquez sur le lien de confirmation pour désactiver la fonctionnalité.
Cliquez sur le lien Annonces dans la barre de navigation.
Notez la présence d'une annonce dans la liste Annonces une fois la fonctionnalité désactivée.
Voir aussi
Tâches
Comment : créer un récepteur d'événements