Procédure : créer un contrôle de rendu de champ
Dernière modification : lundi 5 avril 2010
S’applique à : SharePoint Foundation 2010
Vous pouvez utiliser une classe de contrôle de rendu, en association avec un ou plusieurs modèles de rendu, pour afficher vos champs personnalisés en mode Nouveau, Modifier ou Affichage.
Une classe de contrôle de rendu doit hériter de BaseFieldControl ou d’une des classes dans Microsoft SharePoint Foundation qui en dérivent. Cette classe est compilée dans le même assembly que la classe de champ personnalisé.
Nous vous recommandons d’utiliser la convention d’affectation de noms suivante lorsque vous créez des classes de champs personnalisés dérivées, directement ou indirectement, de la classe BaseFieldControl :
nom_type_champFieldControl
TargetDateFieldControl et RegularExpressionFieldControl sont des exemples de classes de contrôle de champ correctement nommées. (Les classes dérivées de BaseFieldControl fournies avec SharePoint Foundation ont été créées avant la détermination de cette convention d’affectation de noms et respectent le modèle nom_type_champField, par exemple DateTimeField.)
Un objet qui instancie un contrôle de rendu détient, dans sa propriété Field, une référence à l’objet champ qu’il affiche. Ce dernier contient une référence à son contrôle de rendu dans sa propriété FieldRenderingControl. Comme le suggèrent ces références réciproques, les deux objets sont partenaires. L’objet dérivé de SPField gère l’interaction avec la base de données de contenu, tandis que le contrôle de rendu dérivé de BaseFieldControl gère l’interaction avec les utilisateurs et l’affichage du champ dans l’interface utilisateur.
Modèle de rendu
À chaque contrôle de rendu est associé au moins un modèle de rendu. Un objet RenderingTemplate est défini en tant qu’élément RenderingTemplate dans un fichier .ascx dans le dossier %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\controltemplates. Le modèle de rendu est référencé par sa valeur ID dans la propriété DisplayTemplateName ou TemplateName de l’objet contrôle de rendu.
Notes
BaseFieldControl hérite, de TemplateBasedControl, les membres qui lui permettent d’être liés à plusieurs modèles de rendu et de basculer de l’un à l’autre en fonction du contexte de rendu.
Pour plus d’informations sur les modèles de rendu, voir Procédure : créer des modèles de rendu de champ.
Méthode CreateChildControls
Une classe de contrôle de rendu substitue la méthode CreateChildControls qu’elle hérite de Control. Dans la mesure où le modèle de rendu effectue la plus grande partie du travail de rendu, la méthode CreateChildControls a beaucoup moins de travail à réaliser que dans une classe de contrôle ASP.NET classique. En général, elle apporte uniquement une touche finale aux contrôles enfants. Par exemple, elle peut affecter une valeur par défaut à un contrôle enfant en mode Nouveau ou la valeur actuelle du champ à un contrôle enfant en modes Affichage et Modifier. Il est peu probable que vos substitutions de CreateChildControls contiennent un nombre élevé d’opérateurs new créant des contrôles enfants (ce qui pourrait vous surprendre si vous avez de l’expérience dans le domaine de la programmation ASP.NET).
Une logique de validation de données est parfois incluse dans CreateChildControls. Pour plus d’informations sur la validation des données des champs personnalisés, voir Validation des données du champ personnalisé.
Voir aussi
Tâches
Procédure pas à pas : création d'un type de champ personnalisé
Concepts
Procédure : créer une classe de champ personnalisé
Validation des données du champ personnalisé
Procédure : créer une définition de type de champ personnalisé