ControlAdapter ControlAdapter ControlAdapter ControlAdapter Class

Définition

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.Customizes rendering for the derived control to which the adapter is attached, to modify the default markup or behavior for specific browsers, and is the base class from which all control adapters inherit.

public ref class ControlAdapter abstract
public abstract class ControlAdapter
type ControlAdapter = class
Public MustInherit Class ControlAdapter
Héritage
ControlAdapterControlAdapterControlAdapterControlAdapter
Dérivé

Remarques

Les adaptateurs de contrôle sont des composants qui Control remplacent certains événements et méthodes de classe dans son cycle de vie d’exécution pour permettre une gestion spécifique au navigateur ou au balisage.Control adapters are components that override certain Control class methods and events in its execution lifecycle to allow browser or markup-specific handling. Le .NET Framework mappe un adaptateur de contrôle dérivé unique à Control un objet pour chaque demande du client.The .NET Framework maps a single derived control adapter to a Control object for each client request.

Un adaptateur modifie un contrôle pour un navigateur ou une classe de navigateurs spécifiques ou agit comme un filtre arbitraire sur certaines fonctionnalités.An adapter modifies a control for a specific browser or class of browsers or acts as an arbitrary filter on some capability. 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).Typically the adapter is defined by the markup language that the browser uses (for example, XHTML or HTML 3.2). Une grande partie de l’adaptabilité du comportement de rendu peut être encapsulée dans les classes spécialisées qui HtmlTextWriter dérivent de la classe.Much of the adaptability in rendering behavior can be encapsulated in the specialized classes that derive from the HtmlTextWriter class. Par conséquent, il est probable qu’un seul adaptateur puisse être utilisé pour un certain nombre de comportements de classe de navigateur ou que l’inclusion de l' HtmlTextWriter adaptabilité dans les classes peut rendre inutile l’utilisation d’un adaptateur de contrôle.Therefore, it is likely that a single adapter can be used for a number of browser class behaviors or that inclusion of the adaptability in the HtmlTextWriter classes could make the use of a control adapter unnecessary.

Un adaptateur pour une classe de contrôle s’applique à tous les contrôles qui héritent de cette classe, à moins que des adaptateurs spécialisés supplémentaires soient présents.An adapter for a control class applies to all controls that inherit from that class, unless more specialized adapters are present. Par exemple, un adaptateur pour la BaseValidator classe peut être utilisé pour tous Validator les objets.For example, an adapter for the BaseValidator class can be used for all Validator objects.

En général, les adaptateurs n’héritent ControlAdapter pas directement de la classe, mais de l’une des classes de base d’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 requis.Adapters typically do not inherit directly from the ControlAdapter class, but from one of the target-specific adapter base classes that provide additional functionality specific to the control type and target browser or the particular rendering required.

Les contrôles eux-mêmes ne nécessitent pas nécessairement un adaptateur.Controls themselves do not necessarily require an adapter. Si les contrôles sont étendus par composition, les adaptateurs de contrôles enfants sont généralement suffisants.If controls are extended through composition, generally the child control adapters are sufficient.

Chaque contrôle a des mappages explicites aux adaptateurs via les fichiers de définition de navigateur.Each control has explicit mappings to adapters through the .browser definition files. Ainsi, tout accès à la Control.Adapter propriété utilise l' HttpBrowserCapabilities objet extrait des fichiers de définition de navigateur pour effectuer la recherche pour le mappage de l’adaptateur à contrôler.Thus, any access to the Control.Adapter property uses the HttpBrowserCapabilities object extracted from the browser definition files to perform the lookup for the mapping of the adapter to control.

Lors du traitement, le .NET Framework intercepte les appels aux méthodes substituables d’un contrôle qui peut être spécifique à la cible.During processing, the .NET Framework intercepts calls to the overridable methods of a control that could be target-specific. Si un adaptateur de contrôle est attaché, le .NET Framework appelle les méthodes d’adaptateur associées.If a control adapter is attached, the .NET Framework calls the associated adapter methods.

L’adaptateur effectue le rendu pour le contrôle par Render le biais de la méthode.The adapter performs rendering for the control through the Render method. En cas de substitution Render , il est possible qu’il ne soit pas possible d’appeler l’implémentation de la Control.Render classe de base, car elle effectue un rappel sur la méthode.If overridden, Render potentially should not call the base class implementation because that performs a call back on the Control.Render method. Cela peut entraîner le rendu à deux reprises, une fois par l’adaptateur et une fois par le contrôle.This might cause the rendering to occur twice, once by the adapter and once by the control.

La Render méthode de base rappelle la Control.Render méthode du contrôle.The Render base method calls back on the Control.Render method of the control. Par conséquent, si vous substituez Render, vous ne devez pas appeler l’implémentation de la classe de base, sauf si le rendu que vous implémentez s’ajoute à celui fourni par Control.Render le contrôle.Thus, if you override Render, you should not call the base class implementation unless the rendering you implement is in addition to that provided by Control.Render of the control.

Vous devez vous assurer que l' .NET Framework effectue une interception pour les adaptateurs des contrôles enfants.You must ensure that the .NET Framework performs interception for adapters of the child controls. Pour ce faire, appelez la RenderChildren méthode de base, qui appelle la Control.RenderChildren méthode du contrôle à partir de votre Render remplacement.You can do this by calling the RenderChildren base method, which calls the Control.RenderChildren method of the control, from your Render override.

Les méthodes EndRenderetsont appelées par le contrôle immédiatement avant et après (respectivement) le contrôle appelle Render la méthode. BeginRenderThe BeginRender and EndRender methods are called by the control immediately before and after (respectively) the control calls the Render method. Si les tâches de pré-et de après-rendu sont les seules tâches de traitement spécifiques BeginRender au EndRender navigateur requises, l’utilisation de et Renderpeut rendre le remplacement inutile.If pre- and post-rendering are the only browser-specific processing tasks required, using BeginRender and EndRender might make it unnecessary to override Render. Le comportement par défaut des BeginRender méthodes EndRender et consiste à appeler HtmlTextWriterles méthodes correspondantes de.The default behavior of the BeginRender and EndRender methods is to call the corresponding methods of the HtmlTextWriter.

Pour conserver ses propres informations d’État, un adaptateur de contrôle peut substituer LoadAdapterControlStateles SaveAdapterViewState SaveAdapterControlStateméthodes, LoadAdapterViewState , et.To maintain its own state information, a control adapter can override the SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, and LoadAdapterViewState methods. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState etLoadAdapterViewState sont appelés lorsque les États de contrôle et d’affichage privés sont enregistrés et chargés, respectivement.SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, and LoadAdapterViewState are called when the private control and view states are saved and loaded, respectively.

Les OnInitméthodes OnLoadde baseOnPreRender, OnUnload , et rappellent les méthodes de Control classe correspondantes.The OnInit, OnLoad, OnPreRender, and OnUnload base methods call back on the corresponding Control class methods. Par conséquent, chacune de ControlAdapter ces méthodes substituées doit appeler leurs méthodes de base; sinon, l’événement associé à la Control méthode de la classe n’est pas déclenché.Thus, any of these ControlAdapter methods that are overridden must call their base methods; otherwise, the event associated with the Control class method will not be raised.

Les contrôles et les adaptateurs implémentent IPostBackDataHandler éventuellement IPostBackEventHandler les interfaces et.Controls and adapters optionally implement the IPostBackDataHandler and IPostBackEventHandler interfaces. Le .NET Framework détermine si un adaptateur existe et si l’adaptateur implémente ces interfaces.The .NET Framework determines whether an adapter exists and whether the adapter implements these interfaces. Si c’est le cas, l’adaptateur doit remplacer LoadPostDatales RaisePostDataChangedEventméthodes, RaisePostBackEvent et, si nécessaire.If it does, the adapter should override the LoadPostData, RaisePostDataChangedEvent, and RaisePostBackEvent methods, as necessary. Si les données de publication (postback) ne sont pas reconnues dans l’adaptateur, elles doivent rappeler le contrôle pour le traiter.If the postback data is not recognized in the adapter, it must call back on the control to process it. Les gestionnaires d’événements suivants doivent également rappeler le contrôle.Subsequent event handlers also must call back on the control.

Notes pour les héritiers

Lorsque vous héritez de ControlAdapter la classe, un contrôle qui requiert une fonctionnalité d’adaptateur générale doit avoir une classe de base d’adaptateur correspondante ControlType , nommée dans le TextBoxAdaptermodèle Adapter (par exemple,).When you inherit from the ControlAdapter class, a control that requires general adapter functionality should have a corresponding adapter base class, named in the pattern ControlTypeAdapter (for example, TextBoxAdapter). L’adaptateur doit retourner au minimum une instance fortement typée du contrôle par le biais de Control sa propriété.The adapter should at a minimum return a strongly-typed instance of the control through its Control property.

1.1. Les adaptateurs de contrôle pour un type de contrôle et un langage de balisage donnés MarkupControlType doivent être nommés dans XhtmlTextBoxAdapterle modèle Adapter (par exemple,).Control adapters for a given control type and markup language should be named in the pattern MarkupControlTypeAdapter (for example, XhtmlTextBoxAdapter). Les adaptateurs d’un contrôle doivent être implémentés Adapters dans un sous-espace de noms.Adapters for a control should be implemented in an Adapters subnamespace.

Les adaptateurs de contrôle doivent hériter de la classe de base appropriée et suivre le même modèle d’héritage que le contrôle.Control adapters should inherit from the appropriate base class and follow the same inheritance model as the control. Par exemple, un adaptateur pour un contrôle qui hérite de Control la classe de base doit hériter ControlAdapter de la classe ou ControlType de la classe appropriée Adapter .For example, an adapter for a control inheriting from the Control base class should inherit from either the ControlAdapter class or the relevant ControlTypeAdapter class.

Tous les adaptateurs spécialisés doivent être définis pour le contrôle spécialisé sous tous les nœuds de l’appareil dans les fichiers configuration. Browser.Any specialized adapters should be defined for the specialized control under all of the device nodes in configuration .browser files.

Un contrôle correctement implémenté ne doit pas supposer qu’un adaptateur est attaché, ou que l’adaptateur attaché implémente une interface spécifique.A properly implemented control should not assume that an adapter is attached, or that the attached adapter implements a specific interface. Au lieu de cela, il doit vérifier ces derniers avant d’appeler.Instead, it should check for these before calling.

Il est possible de simuler des méthodes d’événement protégées de substitution dans le contrôle, OnClick(EventArgs) telles que la LinkButtonméthode de.It is possible to simulate overriding protected event methods in the control, such as the OnClick(EventArgs) method of the LinkButton. Tout d’abord, créez une classe d’adaptateur avec une méthode OnClick .First, create an adapter class with an OnClick method. Créez ensuite un nouveau contrôle dérivé de LinkButton et substituez la OnClick(EventArgs) méthode.Then create a new control derived from LinkButton and override the OnClick(EventArgs) method. La méthode substituée OnClick(EventArgs) appelle la méthode OnClick de l’adaptateur.The overridden OnClick(EventArgs) method calls the OnClick method of the adapter. L’objet adaptateur est disponible via la propriété Adapter protégée de la Control classe.The adapter object is available through the protected Adapter property of the Control class. La Adapter propriété du contrôle est null lorsqu’il n’y a pas d’adaptateur associé, de sorte que tout code doit vérifier cette condition avant d’appeler les méthodes de l’adaptateur.The Adapter property of the control is null when there is no associated adapter, so any code should check for that condition before calling methods of the adapter.

Constructeurs

ControlAdapter() ControlAdapter() ControlAdapter() ControlAdapter()

Initialise une nouvelle instance de la classe ControlAdapter.Initializes a new instance of the ControlAdapter class.

Propriétés

Browser Browser Browser Browser

Reçoit une référence aux fonctionnalités de navigation du client effectuant la demande HTTP en cours.Gets a reference to the browser capabilities of the client making the current HTTP request.

Control Control Control Control

Reçoit une référence au contrôle auquel cet adaptateur de contrôles est joint.Gets a reference to the control to which this control adapter is attached.

Page Page Page Page

Reçoit une référence à la page sur laquelle réside le contrôle associé à cet adaptateur.Gets a reference to the page where the control associated with this adapter resides.

PageAdapter PageAdapter PageAdapter PageAdapter

Reçoit une référence à l'adaptateur de page pour la page sur laquelle réside le contrôle associé.Gets a reference to the page adapter for the page where the associated control resides.

Méthodes

BeginRender(HtmlTextWriter) BeginRender(HtmlTextWriter) BeginRender(HtmlTextWriter) BeginRender(HtmlTextWriter)

Appelé avant le rendu d'un contrôle.Called prior to the rendering of a control. 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.In a derived adapter class, generates opening tags that are required by a specific target but not needed by HTML browsers.

CreateChildControls() CreateChildControls() CreateChildControls() CreateChildControls()

Crée les contrôles enfants spécifiques à la cible pour un contrôle composite.Creates the target-specific child controls for a composite control.

EndRender(HtmlTextWriter) EndRender(HtmlTextWriter) EndRender(HtmlTextWriter) EndRender(HtmlTextWriter)

Appelé après le rendu d'un contrôle.Called after the rendering of a control. 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.In a derived adapter class, generates closing tags that are required by a specific target but not needed by HTML browsers.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
LoadAdapterControlState(Object) LoadAdapterControlState(Object) LoadAdapterControlState(Object) LoadAdapterControlState(Object)

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.Loads adapter control state information that was saved by SaveAdapterControlState() during a previous request to the page where the control associated with this control adapter resides.

LoadAdapterViewState(Object) LoadAdapterViewState(Object) LoadAdapterViewState(Object) LoadAdapterViewState(Object)

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.Loads adapter view state information that was saved by SaveAdapterViewState() during a previous request to the page where the control associated with this control adapter resides.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
OnInit(EventArgs) OnInit(EventArgs) OnInit(EventArgs) OnInit(EventArgs)

Substitue la méthode OnInit(EventArgs) au contrôle associé.Overrides the OnInit(EventArgs) method for the associated control.

OnLoad(EventArgs) OnLoad(EventArgs) OnLoad(EventArgs) OnLoad(EventArgs)

Substitue la méthode OnLoad(EventArgs) au contrôle associé.Overrides the OnLoad(EventArgs) method for the associated control.

OnPreRender(EventArgs) OnPreRender(EventArgs) OnPreRender(EventArgs) OnPreRender(EventArgs)

Substitue la méthode OnPreRender(EventArgs) au contrôle associé.Overrides the OnPreRender(EventArgs) method for the associated control.

OnUnload(EventArgs) OnUnload(EventArgs) OnUnload(EventArgs) OnUnload(EventArgs)

Substitue la méthode OnUnload(EventArgs) au contrôle associé.Overrides the OnUnload(EventArgs) method for the associated control.

Render(HtmlTextWriter) Render(HtmlTextWriter) Render(HtmlTextWriter) Render(HtmlTextWriter)

Génère le balisage spécifique à la cible pour le contrôle auquel l’adaptateur de contrôle est attaché.Generates the target-specific markup for the control to which the control adapter is attached.

RenderChildren(HtmlTextWriter) RenderChildren(HtmlTextWriter) RenderChildren(HtmlTextWriter) RenderChildren(HtmlTextWriter)

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.Generates the target-specific markup for the child controls in a composite control to which the control adapter is attached.

SaveAdapterControlState() SaveAdapterControlState() SaveAdapterControlState() SaveAdapterControlState()

Enregistre les informations sur l'état de contrôle pour l'adaptateur de contrôles.Saves control state information for the control adapter.

SaveAdapterViewState() SaveAdapterViewState() SaveAdapterViewState() SaveAdapterViewState()

Enregistre les informations sur l'état d'affichage pour l'adaptateur de contrôles.Saves view state information for the control adapter.

ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)

S’applique à

Voir aussi