Partager via


Développement de contrôles personnalisés : concepts clés

Cette rubrique fournit une vue d'ensemble détaillée des différents éléments de programmation impliqués dans le développement d'un contrôle serveur ASP.NET. Les explications sont fournies sous la forme d'une introduction générale à la programmation. Vous trouverez des détails ailleurs dans cette section. Vous pouvez créer votre contrôle dans n'importe quel langage de programmation conforme CLS (Common Language Specification), comme décrit à la section Qu'est-ce que la spécification CLS (Common Language Specification) ?.

Un contrôle serveur ASP.NET est une classe dérivant directement ou indirectement de System.Web.UI.Control. Les deux classes suivantes sont les classes de base des contrôles serveur ASP.NET.

  • System.Web.UI.Control

    La classe Control définit les propriétés, méthodes et événements communs à tous les contrôles serveur ASP.NET. Elle comprend les méthodes et événements qui définissent le cycle de vie d'exécution des contrôles, ainsi que des propriétés telles que ID, UniqueID, Parent, ViewState et Controls (la collection des contrôles enfants). Control ne possède pas de fonctionnalité propre à l'interface utilisateur. Si vous créez un contrôle qui ne fournit pas d'interface utilisateur ou un contrôle combinant d'autres contrôles qui restituent leur propre interface utilisateur, dérivez Control.

  • System.Web.UI.WebControls.WebControl

    La classe WebControl dérive de Control. Elle fournit des propriétés et méthodes supplémentaires pour les fonctionnalités de l'interface utilisateur. Ces propriétés comprennent ForeColor, BackColor, Font, BorderStyle, Height et Width. WebControl est la classe de base pour la famille de contrôles serveur Web dans ASP.NET. Si votre contrôle restitue une interface utilisateur, dérivez de WebControl.

Selon les fonctionnalités de votre contrôle, il se peut que vous deviez implémenter une ou plusieurs des interfaces suivantes.

  • INamingContainer

    INamingContainer est une interface de marqueur (vide) ne possédant aucune méthode. Si cette interface est implémentée par un contrôle, l'infrastructure de page ASP.NET crée une nouvelle portée d'attribution d'un nom sous ce contrôle. Ainsi, les contrôles enfants possèdent un ID unique dans l'arborescence hiérarchique des contrôles. Si votre contrôle est un contrôle composite (s'il contient des contrôles enfants) fournissant la liaison de données, s'il s'agit d'un contrôle basé sur un modèle ou s'il a pour objectif d'acheminer les événements vers ses contrôles enfants, il doit implémenter l'interface INamingContainer. Citons comme exemples le contrôle Repeater et d'autres contrôles dépendants. Pour plus d'informations, consultez Développement d'un contrôle composite.

  • System.Web.UI.IPostBackDataHandler

    Si votre contrôle doit examiner des données de publication et mettre à jour son état ou déclencher des événements sur le serveur selon les modifications apportées aux données, il doit implémenter l'interface IPostBackDataHandler. Citons comme exemple le contrôle TextBox, qui examine la valeur publiée du texte, puis met à jour sa propriété Text et déclenche un événement TextChanged si le texte a été modifié. Pour plus d'informations, consultez Traitement des données de publication.

  • System.Web.UI.IPostBackEventHandler

    Si votre contrôle capture un événement de publication côté client et y répond en le gérant ou en déclenchant des événements sur le serveur, il doit implémenter l'interface IPostBackEventHandler. Citons comme exemple le contrôle Button, qui capture un envoi de formulaire et déclenche un événement Click sur le serveur. Pour plus d'informations, consultez Capture d'événements de publication.

Vous pouvez substituer les propriétés, méthodes et événements hérités d'une classe de base, ou encore ajouter de nouveaux événements, propriétés et méthodes à votre contrôle personnalisé. Pour plus d'informations, consultez Propriétés dans les contrôles serveur ASP.NET, Méthodes dans les contrôles serveur ASP.NET et Événements dans les contrôles serveur ASP.NET.

ASP.NET permet aux contrôles d'exposer des styles et d'y accéder, comme décrit à la section Styles dans les contrôles serveur. Vous pouvez programmer un contrôle serveur ASP.NET permettant aux développeurs de pages de personnaliser leur interface utilisateur à l'aide de modèles inline. Pour plus d'informations, consultez Développement d'un contrôle basé sur un modèle.

Pour développer un contrôle dépendant qui possède des propriétés complexes liées aux données, consultez Développement d'un contrôle dépendant basé sur un modèle.

Pour parcourir les étapes de création d'un contrôle personnalisé simple, consultez Développement d'un contrôle serveur ASP.NET simple.

Voir aussi

Développement d'un contrôle serveur ASP.NET simple | Hiérarchie des contrôles serveur ASP.NET