Partager via


Procédure : personnaliser un contrôle de délégation

Dernière modification : vendredi 9 juillet 2010

S’applique à : SharePoint Foundation 2010

Cet exemple illustre le processus de base de création et d’implémentation d’un contrôle de délégué. Ce dernier réside dans le contrôle AdditionalPageHead sur la page. Il inscrit du code ECMAScript (JavaScript, JScript) sur la page.

Pour générer le contrôle de délégué

  1. Démarrez Outils de développement SharePoint dans Microsoft Visual Studio 2010.

  2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.

  3. Dans Types de projets, sous Visual Basic ou C#, sélectionnez Projet SharePoint vide.

  4. Tapez DéléguéEcmaScript comme nom de projet. Cliquez sur OK.

  5. Dans l’Assistant Personnalisation de SharePoint, choisissez Déployer en tant que solution de batterie. Cliquez sur Terminer.

  6. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet DéléguéEcmaScript. Sélectionnez Ajouter, puis Nouvel élément.

  7. Dans la boîte de dialogue Ajouter un nouvel élément, cliquez sur le groupe Code et choisissez le modèle Classe. Tapez ContrôleDéléguéEcmaScript comme nom, puis cliquez sur Ajouter.

  8. Ensuite, vous devez ajouter une référence à System.Web. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier Références et sélectionnez Ajouter une référence. Dans la boîte de dialogue Ajouter une référence, cliquez sur l’onglet .NET et recherchez System.Web dans la liste. Cliquez sur OK.

  9. Dans le fichier EcmaScriptDelegateControl qui apparaît, ajoutez l’instruction using suivante.

    using System.Web.UI.WebControls;
    
    Imports System.Web.UI.WebControls
    
  10. Attribuez à la classe de base de EcmaScriptDelegateControl la valeur WebControl en modifiant la ligne suivante.

    class EcmaScriptDelegateControl : WebControl
    
    Public Class EcmaScriptDelegateControl
      Inherits WebControl
    
  11. Substituez la méthode OnLoad en ajoutant le code suivant.

    protected override void OnLoad(EventArgs e)
    {
      base.OnLoad(e);
    }
    
    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
      MyBase.OnLoad(e)
    End Sub
    
  12. Dans la méthode OnLoad, ajoutez le code suivant pour placer le script JavaScript sur la page.

      string helloAlert = "alert('Hello, world!');";
      this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "popup", helloAlert, true);
    
      Dim helloAlert As String = "alert('Hello, world!');"
      Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "popup", helloAlert, True)
    

Le contrôle de délégué pour le projet étant généré, vous allez créer le Composant fonctionnel pour déployer le contrôle.

Pour créer un Composant fonctionnel pour déployer le contrôle

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet DéléguéEcmaScript, sélectionnez Ajouter, puis Nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, choisissez le modèle Élément vide et tapez ComposantFonctionnelDéléguéEcmaScript dans la zone Nom. Cliquez sur Ajouter.

  3. Insérez le XML suivant dans l’élément Elements. L’attribut Id identifie le délégué dans lequel le contrôle est restitué. Les attributs ControlAssembly et ControlClass sont uniques pour votre contrôle. Pour plus d’informations sur la recherche du nom complet de l’assembly, voir Procédure : créer un outil pour obtenir le nom complet d'un assembly.

    <Control Id="AdditionalPageHead" ControlAssembly="EcmaScriptDelegate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=public key token" ControlClass="EcmaScriptDelegate.EcmaScriptDelegateControl">
    

À présent, vous disposez du contrôle, ainsi que du Composant fonctionnel nécessaire à son déploiement. Les contrôles requièrent une entrée SafeControl dans le fichier web.config pour s’exécuter sur la page. La procédure suivante indique comment ajouter une entrée SafeControl pour votre contrôle.

Pour ajouter une entrée SafeControl

  1. Dans l’Explorateur de solutions, cliquez sur ComposantFonctionnelDéléguéEcmaScript et cliquez sur ... dans la propriété Entrées de contrôle sécurisé.

  2. Cliquez sur Ajouter dans la boîte de dialogue Entrées de contrôle sécurisé.

  3. Dans la zone Propriétés, vérifiez que la valeur de la propriété Espace de noms est correcte. Il s’agit de l’espace de noms de votre contrôle. En outre, vérifiez que la propriété Sécurisé est définie sur true. Cliquez sur OK.

L’entrée SafeControl étant ajoutée, vous pouvez déployer la solution.

Pour déployer et tester le contrôle de délégué

  1. Appuyez sur la touche F5 pour exécuter la solution.

  2. Lorsque la page se charge, une boîte de dialogue apparaît, indiquant Hello, world!. Il s’agit du script que le contrôle de délégué a ajouté à la page.

Voir aussi

Référence

DelegateControl

Concepts

Contrôle de délégation (modélisation des contrôles)

Contrôles du délégué