Partager via


Implémentation d'un éditeur de modèles Web Forms

Un éditeur de modèles est un concepteur dédié qui prend en charge la création et la modification de modèles pour un contrôle serveur ASP.NET basé sur un modèle. Un contrôle doté d'un éditeur de modèles présente une aire de conception dans laquelle un développeur de pages peut faire glisser des contrôles de la boîte à outils pour créer des modèles inline. Les contrôles serveur DataList et DataGrid du Kit de développement .NET Framework SDK sont des exemples de contrôles prenant en charge la modification de modèles. Pour obtenir des informations sur la création d'un contrôle basé sur un modèle, consultez Développement d'un contrôle basé sur un modèle.

Le .NET Framework fournit une classe de base abstraite (System.Web.UI .Design.TemplatedControlDesigner) qui dérive de ControlDesigner et expose les propriétés et méthodes indispensables à la modification des modèles. Un éditeur de modèles doit dériver de TemplatedControlDesigner. La procédure suivante décrit les principales étapes d'implémentation d'un éditeur de modèles.

Pour implémenter un éditeur de modèles

  1. Définissez une classe qui dérive de TemplatedControlDesigner.

  2. Substituez la propriété AllowResize héritée de ControlDesigner pour activer le redimensionnement du contrôle. Il est recommandé que les contrôles autorisent le redimensionnement en mode modèle même si, en principe, ce n'est pas le cas.

  3. Substituez la méthode GetCachedTemplateEditingVerbs. Un contrôle substitue cette méthode pour retourner la liste des verbes de modification de modèles applicables au contrôle. Consultez l'étape 4 pour obtenir une description du verbe de modification des modèles.

  4. Substituez la méthode CreateTemplateEditingFrame. Cette méthode prend une instance TemplateEditingVerb en tant qu'argument. TemplateEditingVerb est un verbe du concepteur (classe dérivée de DesignerVerb) qui permet à l'éditeur de modèles d'ajouter une commande au contrôle au moment du design. Pour obtenir des informations générales sur les verbes du concepteur, consultez Verbes de concepteur.

  5. Substituez la méthode GetTemplateContent qui récupère le contenu du modèle.

  6. Substituez la méthode SetTemplateContent qui définit le contenu du modèle.

  7. Comme avec tout autre concepteur, substituez les méthodes GetDesignTimeHtml, GetEmptyDesignTimeHtml et GetErrorDesignTimeHtml héritées de la classe ControlDesigner. Si le contrôle basé sur un modèle est dépendant, la méthode GetDesignTimeHtml substituée doit affecter à la source de données du contrôle la source de données au moment du design, comme décrit dans l'Implémentation d'un concepteur de contrôles dépendants Web Forms.

    Si le contrôle basé sur un modèle est dépendant, vous devez également mettre en œuvre les étapes décrites dans la rubrique Implémentation d'un concepteur de contrôles dépendants Web Forms et substituer les méthodes supplémentaires suivantes de TemplatedControlDesigner (décrites dans les étapes 8 et 9).

  8. Substituez la méthode GetTemplateContainerDataSource pour fournir la source de données du conteneur de modèles. Celle-ci est appelée à partir de la boîte de dialogue de liaison des données lors de la modification des liaisons de données des contrôles placés dans un modèle.

  9. Substituez la méthode GetTemplateContainerDataItemProperty pour accéder au nom de la propriété DataItem du conteneur de modèles.

Pour obtenir un exemple d'éditeur de modèles, consultez l'exemple de concepteur de contrôles dépendants basés sur un modèle Web Forms.

Voir aussi

Exemple de concepteur de contrôles dépendants basés sur un modèle Web Forms | Implémentation d'un concepteur de contrôles dépendants Web Forms | Concepteurs personnalisés | Prise en charge des Web Forms au moment du design