ControlAdapter Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
public ref class ControlAdapter abstract
public abstract class ControlAdapter
type ControlAdapter = class
Public MustInherit Class ControlAdapter
- Héritage
-
ControlAdapter
- Dérivé
Remarques
Les adaptateurs de contrôle sont des composants qui remplacent certaines Control méthodes et événements de classe dans son cycle de vie d’exécution pour autoriser la gestion spécifique au navigateur ou au balisage. Le .NET Framework mappe un seul adaptateur de contrôle dérivé à un Control objet pour chaque requête cliente.
Un adaptateur modifie un contrôle pour un navigateur ou une classe de navigateurs spécifique ou agit comme un filtre arbitraire sur une fonctionnalité. En règle générale, l’adaptateur est défini par le langage de balisage utilisé par le navigateur (par exemple, XHTML ou HTML 3.2). Une grande partie de l’adaptabilité dans le comportement de rendu peut être encapsulée dans les classes spécialisées qui dérivent de la HtmlTextWriter classe. 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’adaptabilité dans les HtmlTextWriter classes pourrait rendre l’utilisation d’un adaptateur de contrôle inutile.
Un adaptateur pour une classe de contrôle s’applique à tous les contrôles qui héritent de cette classe, sauf si des adaptateurs plus spécialisés sont présents. Par exemple, un adaptateur pour la BaseValidator classe peut être utilisé pour tous les Validator
objets.
Les adaptateurs n’héritent généralement pas directement de la ControlAdapter classe, mais de l’une des classes de base d’adaptateurs 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.
Les contrôles eux-mêmes ne nécessitent pas nécessairement d’adaptateur. Si les contrôles sont étendus par composition, les adaptateurs de contrôle enfants sont généralement suffisants.
Chaque contrôle a des mappages explicites aux adaptateurs via les fichiers de définition .browser. Ainsi, tout accès à la Control.Adapter propriété utilise l’objet HttpBrowserCapabilities extrait des fichiers de définition de navigateur pour effectuer la recherche du mappage de l’adaptateur à contrôler.
Au cours du traitement, le .NET Framework intercepte les appels aux méthodes substituables d’un contrôle qui peut être spécifique à la cible. Si un adaptateur de contrôle est attaché, le .NET Framework appelle les méthodes d’adaptateur associées.
L’adaptateur effectue le rendu du contrôle via la Render méthode. En cas de substitution, Render il est potentiellement impossible d’appeler l’implémentation de la classe de base, car elle effectue un rappel sur la Control.Render méthode. Cela peut entraîner le rendu deux fois, une fois par l’adaptateur et une fois par le contrôle.
La Render méthode de base revient sur la Control.Render méthode du contrôle. Par conséquent, si vous remplacez Render, vous ne devez pas appeler l’implémentation de classe de base, sauf si le rendu que vous implémentez est en plus de celui fourni par Control.Render le contrôle.
Vous devez vous assurer que le .NET Framework effectue une interception pour les adaptateurs des contrôles enfants. 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.
Les méthodes et EndRender les BeginRender méthodes sont appelées par le contrôle immédiatement avant et après (respectivement) le contrôle appelle la Render méthode. Si les tâches de traitement préalables et post-rendu sont les seules tâches de traitement spécifiques au navigateur requises, l’utilisation BeginRender et EndRender peut rendre inutile de remplacer Render. Le comportement par défaut des BeginRender méthodes et EndRender des méthodes consiste à appeler les méthodes correspondantes du HtmlTextWriter.
Pour conserver ses propres informations d’état, un adaptateur de contrôle peut remplacer les méthodes, SaveAdapterViewStateet LoadAdapterViewState les SaveAdapterControlStateLoadAdapterControlStateméthodes. SaveAdapterControlState, SaveAdapterViewState, et LoadAdapterControlStateLoadAdapterViewState sont appelés lorsque le contrôle privé et les états d’affichage sont enregistrés et chargés, respectivement.
Les OnInitméthodes , , et OnUnload OnLoadOnPreRenderde base rappellent les méthodes de classe correspondantes.Control Ainsi, l’une de ces ControlAdapter méthodes remplacées doit appeler ses méthodes de base ; sinon, l’événement associé à la Control méthode de classe ne sera pas déclenché.
Les contrôles et les adaptateurs implémentent éventuellement les interfaces et IPostBackEventHandler les IPostBackDataHandler contrôles. Le .NET Framework détermine si un adaptateur existe et si l’adaptateur implémente ces interfaces. Si c’est le cas, l’adaptateur doit remplacer le , RaisePostDataChangedEventet RaisePostBackEvent les LoadPostDataméthodes, si nécessaire. Si les données de publication ne sont pas reconnues dans l’adaptateur, elles doivent rappeler le contrôle pour le traiter. Les gestionnaires d’événements suivants doivent également rappeler le contrôle.
Notes pour les responsables de l’implémentation
Lorsque vous héritez de la ControlAdapter classe, un contrôle qui nécessite des fonctionnalités d’adaptateur générales doit avoir une classe de base d’adaptateur correspondante, nommée dans le modèle ControlType
Adapter
(par exemple). TextBoxAdapter
L’adaptateur doit au minimum retourner une instance fortement typée du contrôle par le biais de sa Control propriété.
- Les adaptateurs de contrôle pour un type de contrôle et un langage de balisage donnés doivent être nommés dans le modèle
MarkupControlType
Adapter
(par exemple).XhtmlTextBoxAdapter
Les adaptateurs d’un contrôle doivent être implémentés dans unAdapters
sous-espace.
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. Par exemple, un adaptateur pour un contrôle qui hérite de la Control classe de base doit hériter de la classe ou de la ControlAdapter classe appropriée ControlType
Adapter
.
Tous les adaptateurs spécialisés doivent être définis pour le contrôle spécialisé sous tous les nœuds d’appareil dans les fichiers .browser de configuration.
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. Au lieu de cela, il doit vérifier ces éléments avant d’appeler.
Il est possible de simuler la substitution de méthodes d’événement protégées dans le contrôle, telles que la OnClick(EventArgs) méthode du LinkButton. Tout d’abord, créez une classe d’adaptateur avec une méthode OnClick
. Créez ensuite un contrôle dérivé de LinkButton la méthode et remplacez la OnClick(EventArgs) méthode. La méthode remplacée OnClick(EventArgs) appelle la méthode OnClick
de l’adaptateur. L’objet adaptateur est disponible via la propriété protégée Adapter de la Control classe. La Adapter propriété du contrôle est null
lorsqu’il n’y a pas d’adaptateur associé. Tout code doit donc vérifier cette condition avant d’appeler les méthodes de l’adaptateur.
Constructeurs
ControlAdapter() |
Initialise une nouvelle instance de la classe ControlAdapter. |
Propriétés
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é. |
Méthodes
BeginRender(HtmlTextWriter) |
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(HtmlTextWriter) |
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'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de 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. |
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. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnInit(EventArgs) |
Substitue la méthode OnInit(EventArgs) au contrôle associé. |
OnLoad(EventArgs) |
Substitue la méthode OnLoad(EventArgs) au contrôle associé. |
OnPreRender(EventArgs) |
Substitue la méthode OnPreRender(EventArgs) au contrôle associé. |
OnUnload(EventArgs) |
Substitue la méthode OnUnload(EventArgs) au contrôle associé. |
Render(HtmlTextWriter) |
Génère le balisage spécifique à la cible pour le contrôle auquel l’adaptateur de contrôle est attaché. |
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. |
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) |