ControlAdapter ControlAdapter ControlAdapter ControlAdapter Class

Definition

Passt das Rendering für das abgeleitete Steuerelement an, an das der Adapter angefügt ist, um das Standardmarkup oder Standardverhalten für bestimmte Browser zu ändern, und ist die Basisklasse, die alle Steuerelementadapter erben.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
Vererbung
ControlAdapterControlAdapterControlAdapterControlAdapter
Abgeleitet

Hinweise

Steuerelement Adapter sind Komponenten, die Control bestimmte Klassen Methoden und Ereignisse in Ihrem Ausführungs Lebenszyklus überschreiben, um eine Browser-oder Markup spezifische Handhabung zuzulassen.Control adapters are components that override certain Control class methods and events in its execution lifecycle to allow browser or markup-specific handling. Der .NET Framework ordnet einem- Control Objekt für jede Client Anforderung einen einzelnen abgeleiteten Steuerelement Adapter zu.The .NET Framework maps a single derived control adapter to a Control object for each client request.

Ein Adapter ändert ein Steuerelement für einen bestimmten Browser oder eine bestimmte Browser Klasse oder fungiert als beliebiger Filter für eine Funktion.An adapter modifies a control for a specific browser or class of browsers or acts as an arbitrary filter on some capability. In der Regel wird der Adapter durch die Markup Sprache definiert, die der Browser verwendet (z. b. XHTML oder HTML 3,2).Typically the adapter is defined by the markup language that the browser uses (for example, XHTML or HTML 3.2). Ein Großteil der Anpassbarkeit im Renderingverhalten kann in den spezialisierten Klassen gekapselt HtmlTextWriter werden, die von der-Klasse abgeleitet werden.Much of the adaptability in rendering behavior can be encapsulated in the specialized classes that derive from the HtmlTextWriter class. Daher ist es wahrscheinlich, dass ein einzelner Adapter für eine Reihe von Browser Klassen Verhalten verwendet werden kann oder dass die Einbindung der Anpassbarkeit in HtmlTextWriter die Klassen die Verwendung eines Steuerelement Adapters unnötig machen könnte.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.

Ein Adapter für eine Steuerelement Klasse gilt für alle Steuerelemente, die von dieser Klasse erben, es sei denn, es sind weitere spezialisierte Adapter vorhanden.An adapter for a control class applies to all controls that inherit from that class, unless more specialized adapters are present. Beispielsweise kann ein Adapter für die BaseValidator -Klasse für alle Validator -Objekte verwendet werden.For example, an adapter for the BaseValidator class can be used for all Validator objects.

Adapter erben in der Regel nicht direkt von ControlAdapter der-Klasse, sondern von einer der Ziel spezifischen Adapter Basisklassen, die zusätzliche Funktionalität bereitstellen, die speziell für den Steuer ungstyp und den Zielbrowser oder das jeweilige Rendering erforderlich ist.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.

Steuerelemente selbst erfordern keinen Adapter.Controls themselves do not necessarily require an adapter. Wenn Steuerelemente durch Komposition erweitert werden, sind die untergeordneten Steuerelement Adapter in der Regel ausreichend.If controls are extended through composition, generally the child control adapters are sufficient.

Jedes Steuerelement verfügt über die Browser Definitions Dateien über explizite Zuordnungen zu Adaptern.Each control has explicit mappings to adapters through the .browser definition files. Folglich wird für jeden Zugriff auf Control.Adapter die-Eigenschaft HttpBrowserCapabilities das aus den Browser Definitions Dateien extrahierte-Objekt verwendet, um die Suche nach der Zuordnung des Adapters durchzuführen, der gesteuert werden soll.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.

Während der Verarbeitung fängt der .NET Framework Aufrufe der über schreibbaren Methoden eines Steuer Elements ab, das Ziel spezifisch sein könnte.During processing, the .NET Framework intercepts calls to the overridable methods of a control that could be target-specific. Wenn ein Steuerelement Adapter angefügt ist, ruft der .NET Framework die zugeordneten Adapter Methoden auf.If a control adapter is attached, the .NET Framework calls the associated adapter methods.

Der Adapter führt das Rendering für das-Steuer Render Element über die-Methode aus.The adapter performs rendering for the control through the Render method. Wenn überschrieben, Render sollte möglicherweise nicht die Basisklassen Implementierung aufgerufen werden, da damit einen Rückruf für Control.Render die-Methode ausführt.If overridden, Render potentially should not call the base class implementation because that performs a call back on the Control.Render method. Dies kann dazu führen, dass das Rendering zweimal durch den Adapter und einmal durch das Steuerelement erfolgt.This might cause the rendering to occur twice, once by the adapter and once by the control.

Die Render Basis Methode ruft die- Control.Render Methode des-Steuer Elements zurück.The Render base method calls back on the Control.Render method of the control. Wenn Sie also überschreiben Render, sollten Sie die Basisklassen Implementierung nur dann aufzurufen, wenn das Rendering, das Sie implementieren, zusätzlich Control.Render zu dem vom-Steuerelement bereitgestellten vorhanden ist.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.

Sie müssen sicherstellen, dass die .NET Framework Abfang Vorgänge für Adapter der untergeordneten Steuerelemente ausführt.You must ensure that the .NET Framework performs interception for adapters of the child controls. Dies können Sie erreichen, indem Sie RenderChildren die Basis Methode aufrufen, die Control.RenderChildren die-Methode des-Steuer Elements Render aus der-außer Kraft Setzung aufruft.You can do this by calling the RenderChildren base method, which calls the Control.RenderChildren method of the control, from your Render override.

Die BeginRender - EndRender Methode und die-Methode werden vom-Steuerelement aufgerufen, unmittelbar bevor bzw. Nachdem Render das-Steuerelement die-Methode aufruft.The BeginRender and EndRender methods are called by the control immediately before and after (respectively) the control calls the Render method. Wenn vor und nach dem Rendering die einzigen browserspezifischen Verarbeitungsaufgaben erforderlich sind, kann die über BeginRender Schreibung EndRender von Renderund möglicherweise unnötig sein.If pre- and post-rendering are the only browser-specific processing tasks required, using BeginRender and EndRender might make it unnecessary to override Render. Das Standardverhalten BeginRender der-Methode EndRender und der-Methode besteht darin, HtmlTextWriterdie entsprechenden Methoden von aufzurufen.The default behavior of the BeginRender and EndRender methods is to call the corresponding methods of the HtmlTextWriter.

Um seine eigenen Zustandsinformationen beizubehalten, kann ein Steuerelement Adapter die SaveAdapterControlStateMethoden LoadAdapterControlState, SaveAdapterViewState, und LoadAdapterViewState überschreiben.To maintain its own state information, a control adapter can override the SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, and LoadAdapterViewState methods. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState undLoadAdapterViewState werden aufgerufen, wenn private Steuerelement-und Ansichts Zustände gespeichert bzw. geladen werden.SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, and LoadAdapterViewState are called when the private control and view states are saved and loaded, respectively.

Die OnInitBasis OnLoadMethoden OnPreRender,, undOnUnload greifen auf die entsprechenden Control -Klassen Methoden zurück.The OnInit, OnLoad, OnPreRender, and OnUnload base methods call back on the corresponding Control class methods. Daher müssen alle diese ControlAdapter Methoden, die überschrieben werden, ihre Basis Methoden aufzurufen. andernfalls wird das der- Control Klassenmethode zugeordnete-Ereignis nicht ausgelöst.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.

Steuerelemente und Adapter implementieren optional IPostBackDataHandler die IPostBackEventHandler -und-Schnittstellen.Controls and adapters optionally implement the IPostBackDataHandler and IPostBackEventHandler interfaces. Der .NET Framework bestimmt, ob ein Adapter vorhanden ist und ob der Adapter diese Schnittstellen implementiert.The .NET Framework determines whether an adapter exists and whether the adapter implements these interfaces. Wenn dies der Fall ist, sollte der Adapter LoadPostDataggf. RaisePostBackEvent die Methoden, RaisePostDataChangedEventund überschreiben.If it does, the adapter should override the LoadPostData, RaisePostDataChangedEvent, and RaisePostBackEvent methods, as necessary. Wenn die Post Back Daten im Adapter nicht erkannt werden, muss Sie für das Steuerelement zurückgreifen, um es zu verarbeiten.If the postback data is not recognized in the adapter, it must call back on the control to process it. Nachfolgende Ereignishandler müssen auch einen Rückruf für das-Steuerelement durcharbeiten.Subsequent event handlers also must call back on the control.

Hinweise für Vererber

Wenn Sie von ControlAdapter der-Klasse erben, sollte ein Steuerelement, das allgemeine Adapter Funktionen erfordert, über eine entsprechende Adapter Basisklasse verfügen, die im Muster TextBoxAdapter ControlType Adapter (z. b.) genannt wird.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). Der Adapter sollte mindestens eine stark typisierte Instanz des Steuer Elements über seine Control -Eigenschaft zurückgeben.The adapter should at a minimum return a strongly-typed instance of the control through its Control property.

1.1. Steuerelement Adapter für einen bestimmten Steuerelement-und Markup Sprache sollten im Muster MarkupControlType Adapter benannt werden (z XhtmlTextBoxAdapter. b.).Control adapters for a given control type and markup language should be named in the pattern MarkupControlTypeAdapter (for example, XhtmlTextBoxAdapter). Adapter für ein Steuerelement sollten in einem Adapters untergeordneten Namespace implementiert werden.Adapters for a control should be implemented in an Adapters subnamespace.

Steuerelement Adapter sollten von der entsprechenden Basisklasse erben und dem gleichen Vererbungs Modell wie das Steuerelement folgen.Control adapters should inherit from the appropriate base class and follow the same inheritance model as the control. Beispielsweise muss ein Adapter für ein Steuerelement, das von Control der-Basisklasse erbt, ControlAdapter von der-Klasse ControlType oder der entsprechenden Adapter -Klasse erben.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.

Alle spezialisierten Adapter sollten für das spezialisierte Steuerelement unter allen Geräteknoten in den Configuration. Browser-Dateien definiert werden.Any specialized adapters should be defined for the specialized control under all of the device nodes in configuration .browser files.

Ein ordnungsgemäß implementiertes Steuerelement sollte nicht davon ausgehen, dass ein Adapter angefügt ist oder dass der angefügte Adapter eine bestimmte Schnittstelle implementiert.A properly implemented control should not assume that an adapter is attached, or that the attached adapter implements a specific interface. Stattdessen sollte Sie vor dem Aufrufen von überprüft werden.Instead, it should check for these before calling.

Es ist möglich, das Überschreiben geschützter Ereignis Methoden im-Steuerelement zu simulieren OnClick(EventArgs) , z LinkButton. b. die-Methode von.It is possible to simulate overriding protected event methods in the control, such as the OnClick(EventArgs) method of the LinkButton. Erstellen Sie zunächst eine Adapter Klasse mit einer OnClick -Methode.First, create an adapter class with an OnClick method. Erstellen Sie dann ein neues, von LinkButton abgeleitetes OnClick(EventArgs) Steuerelement, und überschreiben Sie dieThen create a new control derived from LinkButton and override the OnClick(EventArgs) method. Die überschriebene OnClick(EventArgs) Methode ruft die OnClick -Methode des Adapters auf.The overridden OnClick(EventArgs) method calls the OnClick method of the adapter. Das Adapter Objekt ist über die geschützte Adapter -Eigenschaft Control der-Klasse verfügbar.The adapter object is available through the protected Adapter property of the Control class. Die Adapter -Eigenschaft des-Steuer null Elements ist, wenn kein zugeordneter Adapter vorhanden ist. Daher sollte jeglicher Code vor dem Aufrufen von Methoden des Adapters diese Bedingung überprüfen.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.

Konstruktoren

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

Initialisiert eine neue Instanz der ControlAdapter-Klasse.Initializes a new instance of the ControlAdapter class.

Eigenschaften

Browser Browser Browser Browser

Ruft einen Verweis auf die Browserfunktionen des Clients ab, durch den die aktuelle HTTP-Anforderung erfolgt.Gets a reference to the browser capabilities of the client making the current HTTP request.

Control Control Control Control

Ruft einen Verweis auf das Steuerelement ab, an das dieser Steuerelementadapter angefügt ist.Gets a reference to the control to which this control adapter is attached.

Page Page Page Page

Ruft einen Verweis auf die Seite ab, auf der sich das diesem Adapter zugeordnete Steuerelement befindet.Gets a reference to the page where the control associated with this adapter resides.

PageAdapter PageAdapter PageAdapter PageAdapter

Ruft einen Verweis auf den Seitenadapter für die Seite ab, auf der sich das zugeordnete Steuerelement befindet.Gets a reference to the page adapter for the page where the associated control resides.

Methoden

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

Wird vor dem Rendering eines Steuerelements aufgerufen.Called prior to the rendering of a control. Generiert in einer abgeleiteten Adapterklasse öffnende Tags, die für ein bestimmtes Ziel erforderlich sind, von HTML-Browsern jedoch nicht benötigt werden.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()

Erstellt die zielspezifischen untergeordneten Steuerelemente für ein zusammengesetztes Steuerelement.Creates the target-specific child controls for a composite control.

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

Wird nach dem Rendering eines Steuerelements aufgerufen.Called after the rendering of a control. Generiert in einer abgeleiteten Adapterklasse schließende Tags, die für ein bestimmtes Ziel erforderlich sind, von HTML-Browsern jedoch nicht benötigt werden.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)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Fungiert als Standardhashfunktion.Serves as the default hash function.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Lädt Steuerelementzustandsinformationen des Adapters, die von SaveAdapterControlState() während einer vorherigen Anforderung der Seite, auf der sich das diesem Steuerelementadapter zugeordnete Steuerelement befindet, gespeichert wurden.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)

Lädt Ansichtszustandsinformationen des Adapters, die von SaveAdapterViewState() während einer vorherigen Anforderung der Seite, auf der sich das diesem Steuerelementadapter zugeordnete Steuerelement befindet, gespeichert wurden.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()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

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

Überschreibt die OnInit(EventArgs)-Methode für das zugeordnete Steuerelement.Overrides the OnInit(EventArgs) method for the associated control.

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

Überschreibt die OnLoad(EventArgs)-Methode für das zugeordnete Steuerelement.Overrides the OnLoad(EventArgs) method for the associated control.

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

Überschreibt die OnPreRender(EventArgs)-Methode für das zugeordnete Steuerelement.Overrides the OnPreRender(EventArgs) method for the associated control.

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

Überschreibt die OnUnload(EventArgs)-Methode für das zugeordnete Steuerelement.Overrides the OnUnload(EventArgs) method for the associated control.

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

Generiert das zielspezifische Markup für das Steuerelement, an das der Steuerelementadapter angefügt ist.Generates the target-specific markup for the control to which the control adapter is attached.

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

Generiert das zielspezifische Markup für die untergeordneten Steuerelemente in einem zusammengesetzten Steuerelement, an das der Steuerelementadapter angefügt ist.Generates the target-specific markup for the child controls in a composite control to which the control adapter is attached.

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

Speichert Steuerelementzustandsinformationen für den Steuerelementadapter.Saves control state information for the control adapter.

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

Speichert Ansichtszustandsinformationen für den Steuerelementadapter.Saves view state information for the control adapter.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für:

Siehe auch