ControlAdapter ControlAdapter ControlAdapter ControlAdapter Class

Definizione

Personalizza il rendering per il controllo derivato al quale è collegato l'adattatore, per modificare il markup predefinito o il comportamento di browser specifici, ed è la classe base dalla quale ereditano tutti gli adattatori dei controlli.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
Ereditarietà
ControlAdapterControlAdapterControlAdapterControlAdapter
Derivato

Commenti

Gli adattatori di controllo sono componenti che eseguono l'override di alcuni Control classe metodi ed eventi nella durata di esecuzione per consentire la gestione di markup specifiche o browser.Control adapters are components that override certain Control class methods and events in its execution lifecycle to allow browser or markup-specific handling. .NET Framework esegue il mapping di una scheda di controllo derivato singolo a un Control oggetto per ogni richiesta del client.The .NET Framework maps a single derived control adapter to a Control object for each client request.

Un adattatore di modifica di un controllo per un browser specifico o una classe di o funge da filtro arbitrario su alcune funzionalità.An adapter modifies a control for a specific browser or class of browsers or acts as an arbitrary filter on some capability. L'adapter è in genere definito dal linguaggio di markup che utilizza il browser (ad esempio, 3.2 HTML o XHTML).Typically the adapter is defined by the markup language that the browser uses (for example, XHTML or HTML 3.2). Gran parte dell'adattabilità nel comportamento di rendering può essere incapsulata nelle classi speciali che derivano dal HtmlTextWriter classe.Much of the adaptability in rendering behavior can be encapsulated in the specialized classes that derive from the HtmlTextWriter class. Pertanto, è probabile che una singola scheda può essere utilizzata per un numero di browser classe comportamenti o che l'inclusione di adattabilità nel HtmlTextWriter classi è stato possibile verificare l'utilizzo di un adattatore di controllo non necessari.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 adattatore per una classe del controllo si applica a tutti i controlli che ereditano da tale classe, a meno che non sono presenti schede più specializzati.An adapter for a control class applies to all controls that inherit from that class, unless more specialized adapters are present. Ad esempio, un adattatore per il BaseValidator classe può essere utilizzata per tutti i Validator oggetti.For example, an adapter for the BaseValidator class can be used for all Validator objects.

In genere gli adapter non ereditano direttamente dai ControlAdapter (classe), ma da una dell'adattatore specifico della destinazione di base le classi che forniscono funzionalità aggiuntive specifiche per il browser di destinazione e tipo di controllo o il rendering specifico richiesto.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.

I controlli stessi non richiedono necessariamente un adapter.Controls themselves do not necessarily require an adapter. Se i controlli vengono estese tramite la composizione, in genere di adattatori di controlli figlio sono sufficienti.If controls are extended through composition, generally the child control adapters are sufficient.

Ogni controllo ha mapping espliciti a schede tramite i file di definizione del browser.Each control has explicit mappings to adapters through the .browser definition files. Pertanto, qualsiasi accesso al Control.Adapter utilizzata dalla proprietà di HttpBrowserCapabilities oggetto estratto dal file di definizione del browser per eseguire la ricerca per il mapping della scheda di controllo.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.

Durante l'elaborazione, .NET Framework intercetta le chiamate ai metodi sottoponibili a override di un controllo che può essere specifico della destinazione.During processing, the .NET Framework intercepts calls to the overridable methods of a control that could be target-specific. Se è collegato un adattatore di controllo, .NET Framework chiama i metodi di adattatore associato.If a control adapter is attached, the .NET Framework calls the associated adapter methods.

L'adapter esegue il rendering del controllo mediante il Render (metodo).The adapter performs rendering for the control through the Render method. Se sottoposto a override, Render potenzialmente non deve chiamare l'implementazione della classe di base perché che esegue una chiamata di nuovo il Control.Render (metodo).If overridden, Render potentially should not call the base class implementation because that performs a call back on the Control.Render method. Ciò potrebbe causare il verificarsi due volte, una volta con l'adapter e una volta dal controllo del rendering.This might cause the rendering to occur twice, once by the adapter and once by the control.

Il Render chiamate al metodo di base nel Control.Render metodo del controllo.The Render base method calls back on the Control.Render method of the control. Di conseguenza, se esegue l'override Render, non chiamare l'implementazione della classe base, a meno che il rendering da implementare oltre a quelle avviene tramite Control.Render del controllo.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.

È necessario assicurarsi che .NET Framework esegua l'intercettazione per gli adattatori dei controlli figlio.You must ensure that the .NET Framework performs interception for adapters of the child controls. È possibile farlo tramite una chiamata di RenderChildren basare metodo, che chiama il Control.RenderChildren metodo del controllo, dal Render eseguire l'override.You can do this by calling the RenderChildren base method, which calls the Control.RenderChildren method of the control, from your Render override.

Il BeginRender e EndRender metodi vengono chiamati dal controllo immediatamente prima e dopo (rispettivamente) le chiamate di controllo di Render (metodo).The BeginRender and EndRender methods are called by the control immediately before and after (respectively) the control calls the Render method. Se pre-elaborazione e post-rendering è le specifiche del browser solo l'elaborazione delle attività necessarie, usando BeginRender e EndRender potrebbe risultare non necessari eseguire l'override Render.If pre- and post-rendering are the only browser-specific processing tasks required, using BeginRender and EndRender might make it unnecessary to override Render. Il comportamento predefinito del BeginRender e EndRender metodi consiste nel chiamare i metodi corrispondenti del HtmlTextWriter.The default behavior of the BeginRender and EndRender methods is to call the corresponding methods of the HtmlTextWriter.

Per mantenere le proprie informazioni di stato, è possibile eseguire l'override di un adattatore di controllo di SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, e LoadAdapterViewState metodi.To maintain its own state information, a control adapter can override the SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, and LoadAdapterViewState methods. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, e LoadAdapterViewState vengono chiamati quando gli stati di controllo e visualizzazione privati vengono salvati e caricati, rispettivamente.SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, and LoadAdapterViewState are called when the private control and view states are saved and loaded, respectively.

Il OnInit, OnLoad, OnPreRender, e OnUnload chiamata di metodi di base nel corrispondente Control metodi della classe.The OnInit, OnLoad, OnPreRender, and OnUnload base methods call back on the corresponding Control class methods. Di conseguenza, nessuno di questi ControlAdapter metodi sottoposti a override devono chiamare i metodi di base; in caso contrario, l'evento associato il Control metodo della classe non verrà generato.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.

Controlli e adattatori di implementano facoltativamente il IPostBackDataHandler e IPostBackEventHandler interfacce.Controls and adapters optionally implement the IPostBackDataHandler and IPostBackEventHandler interfaces. .NET Framework determina se esiste un adapter e indica se l'adapter implementa le interfacce.The .NET Framework determines whether an adapter exists and whether the adapter implements these interfaces. In caso affermativo, l'adapter deve eseguire l'override di LoadPostData, RaisePostDataChangedEvent, e RaisePostBackEvent metodi, in base alle esigenze.If it does, the adapter should override the LoadPostData, RaisePostDataChangedEvent, and RaisePostBackEvent methods, as necessary. Se i dati di postback non viene riconosciuti nell'adapter, deve chiamare nuovamente sul controllo per elaborarlo.If the postback data is not recognized in the adapter, it must call back on the control to process it. Gestori di eventi successivi anche necessario chiamare nuovamente nel controllo.Subsequent event handlers also must call back on the control.

Note per gli eredi

Quando si eredita dal ControlAdapter (classe), un controllo che necessiti di caratteristiche generali adapter deve avere una scheda corrispondente classe, denominata nel modello di base ControlType Adapter (ad esempio, TextBoxAdapter).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'adapter deve restituire almeno un'istanza fortemente tipizzato al controllo tramite relativo Control proprietà.The adapter should at a minimum return a strongly-typed instance of the control through its Control property.

1.1. Schede di controllo per un linguaggio di markup e tipo di controllo specificato deve essere denominato nel formato MarkupControlType Adapter (ad esempio, XhtmlTextBoxAdapter).Control adapters for a given control type and markup language should be named in the pattern MarkupControlTypeAdapter (for example, XhtmlTextBoxAdapter). Schede per un controllo devono essere implementate in un Adapters sottospazio dei nomi.Adapters for a control should be implemented in an Adapters subnamespace.

Gli adattatori di controllo devono ereditare dalla classe di base appropriata e seguire lo stesso modello di ereditarietà di controllo.Control adapters should inherit from the appropriate base class and follow the same inheritance model as the control. Ad esempio, un adattatore per un controllo che eredita dal Control classe di base deve ereditare da una di ControlAdapter classe o il relativo ControlType Adapter classe.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.

Tutti gli adattatori specializzati devono essere definiti per il controllo specializzato in tutti i nodi di dispositivo nei file di configurazione con estensione.Any specialized adapters should be defined for the specialized control under all of the device nodes in configuration .browser files.

Un controllo correttamente implementato non deve presupporre che un adapter viene collegato o che l'adattatore associato implementa un'interfaccia specifica.A properly implemented control should not assume that an adapter is attached, or that the attached adapter implements a specific interface. Al contrario, è necessario verificare queste prima della chiamata.Instead, it should check for these before calling.

È possibile simulare l'override dei metodi di evento protetto nel controllo, ad esempio la OnClick(EventArgs) metodo di LinkButton.It is possible to simulate overriding protected event methods in the control, such as the OnClick(EventArgs) method of the LinkButton. In primo luogo, creare una classe dell'adattatore con un' OnClick (metodo).First, create an adapter class with an OnClick method. Quindi creare un nuovo controllo derivato da LinkButton ed eseguire l'override di OnClick(EventArgs) (metodo).Then create a new control derived from LinkButton and override the OnClick(EventArgs) method. Sottoposto a override OnClick(EventArgs) chiamate al metodo il OnClick metodo dell'adapter.The overridden OnClick(EventArgs) method calls the OnClick method of the adapter. L'oggetto scheda è disponibile tramite il metodo protetto Adapter proprietà del Control classe.The adapter object is available through the protected Adapter property of the Control class. Il Adapter proprietà del controllo è null quando è presente alcun adattatore associato, pertanto qualsiasi codice deve verificare tale condizione prima di chiamare i metodi dell'adapter.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.

Costruttori

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

Inizializza una nuova istanza della classe ControlAdapter.Initializes a new instance of the ControlAdapter class.

Proprietà

Browser Browser Browser Browser

Ottiene un riferimento alle funzionalità del browser del client che effettua la richiesta HTTP corrente.Gets a reference to the browser capabilities of the client making the current HTTP request.

Control Control Control Control

Ottiene un riferimento al controllo a cui è collegato questo adattatore di controllo.Gets a reference to the control to which this control adapter is attached.

Page Page Page Page

Ottiene un riferimento alla pagina in cui si trova il controllo associato a questo adattatore.Gets a reference to the page where the control associated with this adapter resides.

PageAdapter PageAdapter PageAdapter PageAdapter

Ottiene un riferimento all'adattatore di pagina per la pagina in cui si trova il controllo associato.Gets a reference to the page adapter for the page where the associated control resides.

Metodi

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

Questo metodo viene chiamato prima di effettuare il rendering di un controllo.Called prior to the rendering of a control. In una classe di adattatore derivata, genera i tag di apertura richiesti da una destinazione specifica ma non necessari per i browser 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()

Crea i controlli figlio specifici della destinazione per un controllo composito.Creates the target-specific child controls for a composite control.

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

Questo metodo viene chiamato dopo il rendering di un controllo.Called after the rendering of a control. In una classe di adattatore derivata, genera i tag di chiusura richiesti da una destinazione specifica ma non necessari per i browser 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)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

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

Funge da funzione hash predefinita.Serves as the default hash function.

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

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

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

Carica le informazioni sullo stato di controllo dell'adattatore salvate dal metodo SaveAdapterControlState() durante una precedente richiesta alla pagina in cui si trova il controllo associato a questo adattatore di controllo.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)

Carica le informazioni sullo stato di visualizzazione dell'adattatore salvate dal metodo SaveAdapterViewState() durante una precedente richiesta alla pagina in cui si trova il controllo associato a questo adattatore di controllo.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()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

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

Esegue l'override del metodo OnInit(EventArgs) per il controllo associato.Overrides the OnInit(EventArgs) method for the associated control.

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

Esegue l'override del metodo OnLoad(EventArgs) per il controllo associato.Overrides the OnLoad(EventArgs) method for the associated control.

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

Esegue l'override del metodo OnPreRender(EventArgs) per il controllo associato.Overrides the OnPreRender(EventArgs) method for the associated control.

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

Esegue l'override del metodo OnUnload(EventArgs) per il controllo associato.Overrides the OnUnload(EventArgs) method for the associated control.

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

Genera il markup specifico della destinazione per il controllo a cui è associato l'adattatore del controllo.Generates the target-specific markup for the control to which the control adapter is attached.

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

Genera il markup specifico della destinazione per i controlli figlio in un controllo composito al quale è collegato l'adattatore del controllo.Generates the target-specific markup for the child controls in a composite control to which the control adapter is attached.

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

Salva le informazioni sullo stato del controllo per l'adattatore del controllo.Saves control state information for the control adapter.

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

Salva le informazioni sullo stato di visualizzazione per l'adattatore del controllo.Saves view state information for the control adapter.

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

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Si applica a

Vedi anche