ControlAdapter Klasse

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.

public ref class ControlAdapter abstract
public abstract class ControlAdapter
type ControlAdapter = class
Public MustInherit Class ControlAdapter
Vererbung
ControlAdapter
Abgeleitet

Hinweise

Steuerelementadapter sind Komponenten, die bestimmte Control Klassenmethoden und Ereignisse im Ausführungslebenszyklus außer Kraft setzen, um browser- oder markupspezifische Behandlung zu ermöglichen. Der .NET Framework weist einen einzelnen abgeleiteten Steuerelementadapter Control einem Objekt für jede Clientanforderung zu.

Ein Adapter ändert ein Steuerelement für einen bestimmten Browser oder eine bestimmte Browserklasse oder fungiert als beliebiger Filter für einige Funktionen. In der Regel wird der Adapter durch die Markupsprache definiert, die der Browser verwendet (z. B. XHTML oder HTML 3.2). Viele der Anpassungsfähigkeit im Renderingverhalten können in den spezialisierten Klassen gekapselt werden, die von der HtmlTextWriter Klasse abgeleitet werden. Daher ist es wahrscheinlich, dass ein einzelner Adapter für eine Reihe von Browserklassenverhalten verwendet werden kann oder die Einbeziehung der Anpassungsfähigkeit in die HtmlTextWriter Klassen die Verwendung eines Steuerelementadapters unnötig machen könnte.

Ein Adapter für eine Steuerelementklasse gilt für alle Steuerelemente, die von dieser Klasse erben, es sei denn, mehr spezialisierte Adapter sind vorhanden. Beispielsweise kann ein Adapter für die BaseValidator Klasse für alle Validator Objekte verwendet werden.

Adapter erben in der Regel nicht direkt von der ControlAdapter Klasse, sondern von einer der zielspezifischen Adapterbasisklassen, die zusätzliche Funktionen für den Steuerelementtyp und den Zielbrowser oder das bestimmte Rendering bereitstellen.

Steuerelemente selbst erfordern nicht unbedingt einen Adapter. Wenn Steuerelemente über die Zusammensetzung erweitert werden, sind im Allgemeinen die untergeordneten Steuerelementadapter ausreichend.

Jedes Steuerelement verfügt über explizite Zuordnungen zu Adaptern über die Browserdefinitionsdateien. Daher verwendet jeder Zugriff auf die Control.Adapter Eigenschaft das Objekt, das HttpBrowserCapabilities aus den Browserdefinitionsdateien extrahiert wird, um die Nachschlagevorgänge für die Zuordnung des Adapters auszuführen, um zu steuern.

Während der Verarbeitung abfangen die .NET Framework Aufrufe an die überschriebenen Methoden eines Steuerelements ab, das zielspezifisch sein könnte. Wenn ein Steuerelementadapter angefügt ist, ruft die .NET Framework die zugeordneten Adaptermethoden auf.

Der Adapter führt das Rendering für das Steuerelement über die Render Methode aus. Wenn er außer Kraft gesetzt wird, sollte die Basisklassenimplementierung möglicherweise nicht aufgerufen werden, Render da dies einen Rückruf auf der Control.Render Methode ausführt. Dies kann dazu führen, dass das Rendering zweimal auftritt, einmal vom Adapter und einmal vom Steuerelement.

Die Render Basismethode ruft die Control.Render Methode des Steuerelements zurück. Wenn Sie also außer Kraft setzen, sollten Sie die Basisklassenimplementierung Rendernicht aufrufen, es sei denn, das Rendern, das Sie implementieren, ist zusätzlich zu diesem von dem Steuerelement bereitgestellten Control.Render Steuerelement.

Sie müssen sicherstellen, dass die .NET Framework die Überwachung für Adapter der untergeordneten Steuerelemente ausführt. Sie können dies tun, indem Sie die Basismethode aufrufen, die die RenderChildren Control.RenderChildren Methode des Steuerelements aus Ihrer Render Außerkraftsetzung aufruft.

Die Und EndRender Methoden BeginRender werden vom Steuerelement unmittelbar vor und nach dem Aufrufen Render der Methode aufgerufen. Wenn vor- und nach dem Rendering die einzigen browserspezifischen Verarbeitungsaufgaben sind, die benötigt werden, verwenden sie und EndRender machen es möglicherweise unnötig, BeginRender dies außer RenderKraft zu setzen. Das Standardverhalten der BeginRender EndRender Methoden und Methoden besteht darin, die entsprechenden Methoden der HtmlTextWriter.

Um eigene Statusinformationen zu erhalten, kann ein Steuerelementadapter die SaveAdapterControlStateMethoden LoadAdapterControlState, SaveAdapterViewStateund LoadAdapterViewState Methoden außer Kraft setzen. SaveAdapterControlStateLoadAdapterControlState, SaveAdapterViewStateund LoadAdapterViewState werden aufgerufen, wenn die privaten Steuerelement- und Ansichtszustände gespeichert und geladen werden.

Die OnInitMethoden , OnPreRenderOnLoadund OnUnload Basismethoden rufen auf die entsprechenden Control Klassenmethoden zurück. Daher müssen alle diese ControlAdapter Methoden, die überschrieben werden, ihre Basismethoden aufrufen. Andernfalls wird das ereignis, das der Control Klassenmethode zugeordnet ist, nicht ausgelöst.

Steuerelemente und Adapter implementieren optional die und schnittstellen IPostBackDataHandler IPostBackEventHandler . Die .NET Framework bestimmt, ob ein Adapter vorhanden ist und ob der Adapter diese Schnittstellen implementiert. Bei Bedarf sollte der Adapter die LoadPostDataRaisePostDataChangedEventMethoden und RaisePostBackEvent Methoden außer Kraft setzen. Wenn die Postbackdaten im Adapter nicht erkannt werden, muss er auf das Steuerelement zurückrufen, um es zu verarbeiten. Nachfolgende Ereignishandler müssen auch auf das Steuerelement zurückrufen.

Hinweise für Ausführende

Wenn Sie von der ControlAdapter Klasse erben, sollte ein Steuerelement, das allgemeine Adapterfunktionen erfordert, über eine entsprechende Adapterbasisklasse verfügen, die im Muster ControlTypeAdapter benannt ist (z TextBoxAdapter. B. ). Der Adapter sollte mindestens eine stark eingegebene Instanz des Steuerelements über seine Control Eigenschaft zurückgeben.

  1. Steuerelementadapter für einen bestimmten Steuerelementtyp und Markupsprache sollten im Muster MarkupControlTypeAdapter benannt werden (z XhtmlTextBoxAdapter. B. ). Adapter für ein Steuerelement sollten in einem Adapters Unternamespace implementiert werden.

Steuerelementadapter sollten von der entsprechenden Basisklasse erben und das gleiche Vererbungsmodell wie das Steuerelement befolgen. Beispielsweise sollte ein Adapter für ein Steuerelement, das von der Basisklasse erbt, entweder von der ControlAdapter Control Klasse oder der relevanten Klasse erbenControlTypeAdapter.

Alle spezialisierten Adapter sollten für das spezialisierte Steuerelement unter allen Geräteknoten in Konfigurations-Browserdateien definiert werden.

Ein ordnungsgemäß implementiertes Steuerelement sollte nicht davon ausgehen, dass ein Adapter angefügt wird oder dass der angefügte Adapter eine bestimmte Schnittstelle implementiert. Stattdessen sollte sie vor dem Anruf nach diesen suchen.

Es ist möglich, die Außerkraftsetzung von geschützten Ereignismethoden im Steuerelement zu simulieren, z. B. die OnClick(EventArgs) Methode der LinkButton. Erstellen Sie zunächst eine Adapterklasse mit einer OnClick-Methode . Erstellen Sie dann ein neues Steuerelement, das von LinkButton der Methode abgeleitet ist, und überschreiben Sie die OnClick(EventArgs) Methode. Die überschriebene OnClick(EventArgs) Methode ruft die OnClick-Methode des Adapters auf. Das Adapterobjekt ist über die geschützte Adapter Eigenschaft der Control Klasse verfügbar. Die Adapter Eigenschaft des Steuerelements besteht darin, dass kein zugeordneter Adapter vorhanden ist null , sodass jeder Code vor dem Aufrufen von Methoden des Adapters nach dieser Bedingung suchen sollte.

Konstruktoren

ControlAdapter()

Initialisiert eine neue Instanz der ControlAdapter-Klasse.

Eigenschaften

Browser

Ruft einen Verweis auf die Browserfunktionen des Clients ab, durch den die aktuelle HTTP-Anforderung erfolgt.

Control

Ruft einen Verweis auf das Steuerelement ab, an das dieser Steuerelementadapter angefügt ist.

Page

Ruft einen Verweis auf die Seite ab, auf der sich das diesem Adapter zugeordnete Steuerelement befindet.

PageAdapter

Ruft einen Verweis auf den Seitenadapter für die Seite ab, auf der sich das zugeordnete Steuerelement befindet.

Methoden

BeginRender(HtmlTextWriter)

Wird vor dem Rendering eines Steuerelements aufgerufen. Generiert in einer abgeleiteten Adapterklasse öffnende Tags, die für ein bestimmtes Ziel erforderlich sind, von HTML-Browsern jedoch nicht benötigt werden.

CreateChildControls()

Erstellt die zielspezifischen untergeordneten Steuerelemente für ein zusammengesetztes Steuerelement.

EndRender(HtmlTextWriter)

Wird nach dem Rendering eines Steuerelements aufgerufen. Generiert in einer abgeleiteten Adapterklasse schließende Tags, die für ein bestimmtes Ziel erforderlich sind, von HTML-Browsern jedoch nicht benötigt werden.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von 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.

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.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnInit(EventArgs)

Überschreibt die OnInit(EventArgs)-Methode für das zugeordnete Steuerelement.

OnLoad(EventArgs)

Überschreibt die OnLoad(EventArgs)-Methode für das zugeordnete Steuerelement.

OnPreRender(EventArgs)

Überschreibt die OnPreRender(EventArgs)-Methode für das zugeordnete Steuerelement.

OnUnload(EventArgs)

Überschreibt die OnUnload(EventArgs)-Methode für das zugeordnete Steuerelement.

Render(HtmlTextWriter)

Generiert das zielspezifische Markup für das Steuerelement, an das der Steuerelementadapter angefügt ist.

RenderChildren(HtmlTextWriter)

Generiert das zielspezifische Markup für die untergeordneten Steuerelemente in einem zusammengesetzten Steuerelement, an das der Steuerelementadapter angefügt ist.

SaveAdapterControlState()

Speichert Steuerelementzustandsinformationen für den Steuerelementadapter.

SaveAdapterViewState()

Speichert Ansichtszustandsinformationen für den Steuerelementadapter.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für

Siehe auch