Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
ControlAdapter, classe
Personnalise le rendu pour le contrôle dérivé auquel l'adaptateur est joint, afin de modifier le balisage par défaut ou le comportement de navigateurs spécifiques, et constitue la classe de base à partir de laquelle sont hérités tous les adaptateurs de contrôles.
System.Web.UI.Adapters.ControlAdapter
System.Web.UI.Adapters.PageAdapter
System.Web.UI.WebControls.Adapters.WebControlAdapter
Assembly : System.Web (dans System.Web.dll)
Le type ControlAdapter expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
ControlAdapter | Infrastructure. Initialise une nouvelle instance de la classe ControlAdapter. |
| Nom | Description | |
|---|---|---|
|
Browser | Reçoit une référence aux fonctionnalités de navigation du client effectuant la demande HTTP en cours. |
|
Control | Reçoit une référence au contrôle auquel cet adaptateur de contrôles est joint. |
|
Page | Reçoit une référence à la page sur laquelle réside le contrôle associé à cet adaptateur. |
|
PageAdapter | Reçoit une référence à l'adaptateur de page pour la page sur laquelle réside le contrôle associé. |
| Nom | Description | |
|---|---|---|
|
BeginRender | Appelé avant le rendu d'un contrôle. Dans une classe d'adaptateur dérivée, génère des balises d'ouverture requises par une cible spécifique mais pas par les navigateurs HTML. |
|
CreateChildControls | Crée les contrôles enfants spécifiques à la cible pour un contrôle composite. |
|
EndRender | Appelé après le rendu d'un contrôle. Dans une classe d'adaptateur dérivée, génère des balises de fermeture requises par une cible spécifique mais pas par les navigateurs HTML. |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
LoadAdapterControlState | Charge des informations sur l'état du contrôle d'adaptateur qui ont été enregistrées par SaveAdapterControlState, lors d'une demande antérieure, sur la page sur laquelle réside le contrôle associé à cet adaptateur de contrôles. |
|
LoadAdapterViewState | Charge des informations sur l'état d'affichage de l'adaptateur qui ont été enregistrées par SaveAdapterViewState, lors d'une demande antérieure, sur la page sur laquelle réside le contrôle associé à cet adaptateur de contrôles. |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
OnInit | Substitue la méthode OnInit au contrôle associé. |
|
OnLoad | Substitue la méthode OnLoad au contrôle associé. |
|
OnPreRender | Substitue la méthode OnPreRender au contrôle associé. |
|
OnUnload | Substitue la méthode OnUnload au contrôle associé. |
|
Render | Génère le balisage spécifique à la cible pour le contrôle auquel l'adaptateur de contrôles est attaché. |
|
RenderChildren | Génère la balise spécifique à la cible pour les contrôles enfants dans un contrôle composite auquel l'adaptateur de contrôles est joint. |
|
SaveAdapterControlState | Enregistre les informations sur l'état de contrôle pour l'adaptateur de contrôles. |
|
SaveAdapterViewState | Enregistre les informations sur l'état d'affichage pour l'adaptateur de contrôles. |
|
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Les adaptateurs de contrôles sont des composants qui substituent certaines méthodes de la classe Control et certains événements de son cycle de vie d'exécution afin d'autoriser la gestion du navigateur ou celle qui est spécifique au balisage. Le .NET Framework mappe un adaptateur de contrôles dérivés seul à un objet Control pour chaque demande du client.
Un adaptateur modifie le contrôle d'un navigateur ou d'une classe de navigateurs spécifique, ou agit comme un filtre arbitraire sur certaines fonctions. En général l'adaptateur est défini par le langage de balisage utilisé par le navigateur (par exemple, XHTML ou HTML 3.2). La faculté d'adaptation du comportement du rendu peut en grande partie être encapsulée dans les classes spécialisées qui dérivent de la classe HtmlTextWriter. Par conséquent, il est probable qu'un même adaptateur pourra être utilisé pour plusieurs comportements de classe de navigateur ou que cette inclusion de l'adaptabilité dans les classes HtmlTextWriter rendra superflue l'utilisation d'un adaptateur de contrôles.
Un adaptateur pour une classe de contrôle s'applique à tous les contrôles qui héritent de cette classe, à moins que des adaptateurs plus spécialisés soient présents. Par exemple, un adaptateur pour la classe BaseValidator peut être utilisé pour tous les objets Validator.
Les adaptateurs n'héritent généralement pas directement de la classe ControlAdapter, mais de l'une des classes de base de l'adaptateur spécifiques à la cible, qui fournissent des fonctionnalités supplémentaires spécifiques au type de contrôle et au navigateur cible ou au rendu particulier.
Les contrôles proprement dits n'exigent pas nécessairement d'adaptateur. Si les contrôles sont étendus à travers la composition, les adaptateurs de contrôles enfants sont généralement suffisants.
Des mappages explicites vers des adaptateurs sont définis pour chaque contrôle dans les fichiers de définition browser. Ainsi, tout accès à la propriété Control.Adapter utilise l'objet HttpBrowserCapabilities extrait des fichiers de définition de navigateur pour rechercher le mappage de l'adaptateur à contrôler.
Au cours du processus, le .NET Framework intercepte les appels aux méthodes substituables d'un contrôle qui pourraient être spécifiques à la cible. Si un adaptateur de contrôles est attaché, le .NET Framework appelle les méthodes associées à l'adaptateur.
L'adaptateur exécute le rendu pour le contrôle à travers la méthode Render. En cas de substitution, Render ne devrait pas appeler l'implémentation de la classe de base parce que cette action exécute un rappel sur la méthode Control.Render. Le rendu peut alors se produire deux fois, une fois par l'adaptateur et une fois par le contrôle.
La méthode de base Render rappelle la méthode Control.Render du contrôle. Donc, si vous substituez Render, vous ne devez pas appeler l'implémentation de classe de base à moins que le rendu que vous implémentez ne vienne s'ajouter à celui fourni par Control.Render du contrôle.
Vous devez garantir que le .NET Framework exécute l'interception pour les adaptateurs des contrôles enfants. Vous pouvez faire ceci en appelant la méthode de base RenderChildren qui appelle la méthode Control.RenderChildren du contrôle à partir de votre substitution Render.
Les méthodes BeginRender et EndRender sont appelées par le contrôle immédiatement avant et après (respectivement) que le contrôle appelle la méthode Render. Si le pré-rendu et le post-rendu sont les seules tâches de traitement spécifiques au navigateur requises, l'utilisation de BeginRender et EndRender peut rendre superflue la substitution de Render. Le comportement par défaut des méthodes BeginRender et EndRender revient à appeler les méthodes correspondantes de HtmlTextWriter.
Pour maintenir ses propres informations d'état, un adaptateur de contrôles peut substituer les méthodes SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState et LoadAdapterViewState. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlStateet LoadAdapterViewState sont appelés lorsque le contrôle privé et les états d'affichage sont enregistrés et chargés, respectivement.
OnInit, OnLoad, OnPreRenderet les méthodes de base OnUnload rappellent les méthodes de classe Control correspondantes. Donc, chacune de ces méthodes ControlAdapter substituées doit appeler ses méthodes de base ; sinon, l'événement associé à la méthode de classe Control ne sera pas déclenché.
Les contrôles et adaptateurs implémentent éventuellement les interfaces IPostBackDataHandler et IPostBackEventHandler. Le .NET Framework détermine si un adaptateur existe et si l'adaptateur implémente ces interfaces. S'il le fait, l'adaptateur doit substituer les méthodes LoadPostData, RaisePostDataChangedEvent et RaisePostBackEvent, selon les besoins. Si les données de publication ne sont pas reconnues dans l'adaptateur, il doit effectuer un rappel sur le contrôle pour les traiter. Les gestionnaires d'événements suivants doivent également effectuer un rappel sur le contrôle.
Remarques à l'attention des héritiers
Lorsque vous héritez de la classe ControlAdapter, un contrôle qui requiert les fonctionnalités d'adaptateur générales doit avoir une classe de base d'adaptateur correspondante, nommée dans le motif ControlTypeAdapter (par exemple, TextBoxAdapter). L'adaptateur doit retourner au minimum une instance fortement typée du contrôle à travers sa propriété Control.
-
Les adaptateurs de contrôles pour un type de contrôle et un langage de balisage spécifiques doivent être nommés selon le modèle MarkupControlTypeAdapter (par exemple XhtmlTextBoxAdapter). Les adaptateurs d'un contrôle doivent être implémentés dans un sous-espace de noms Adapters.
Les adaptateurs de contrôles doivent hériter de la classe de base appropriée et suivre le même modèle d'héritage que le contrôle. Par exemple, un adaptateur pour un contrôle héritant de la classe de base Control doit hériter de la classe ControlAdapter ou de la classe ControlTypeAdapter appropriée.
Tous les adaptateurs spécialisés doivent être définis, pour le contrôle spécialisé, sous tous les nœuds d'appareil mobile dans les fichiers de configuration browser.
Un contrôle implémenté correctement ne doit pas supposer qu'un adaptateur est joint, ou que l'adaptateur attaché implémente une interface spécifique. À la place, il doit vérifier ceux-ci avant d'effectuer un appel.
Il est possible de simuler la substitution de méthodes d'événement protégées dans le contrôle, comme la méthode OnClick du LinkButton. En premier lieu, créez une classe d'adaptateur avec une méthode OnClick. Puis créez un nouveau contrôle dérivé de LinkButton et substituez la méthode OnClick. La méthode OnClick substituée appelle la méthode OnClick de l'adaptateur. L'objet d'adaptateur est disponible par le biais de la propriété Adapter protégée de la classe Control. La propriété Adapter du contrôle a la valeur null lorsqu'il n'y a pas d'adaptateur associé, tout code doit donc vérifier cette condition avant d'appeler des méthodes de l'adaptateur.
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.