ControlAdapter Classe

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à
ControlAdapter
Derivato

Commenti

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

Un adapter modifica un controllo per un browser o una classe di browser specifici o funge da filtro arbitrario per alcune funzionalità.An adapter modifies a control for a specific browser or class of browsers or acts as an arbitrary filter on some capability. In genere, l'adapter viene definito dal linguaggio di markup utilizzato dal browser (ad esempio, XHTML o HTML 3,2).Typically the adapter is defined by the markup language that the browser uses (for example, XHTML or HTML 3.2). Gran parte dell'adattamento nel comportamento di rendering può essere incapsulato nelle classi specializzate che derivano HtmlTextWriter dalla classe.Much of the adaptability in rendering behavior can be encapsulated in the specialized classes that derive from the HtmlTextWriter class. Pertanto, è probabile che sia possibile utilizzare un singolo adapter per diversi comportamenti della classe del browser o che l'inclusione dell'adattamento nelle HtmlTextWriter classi possa rendere superfluo l'utilizzo di un adattatore di controllo.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 adapter per una classe di controllo si applica a tutti i controlli che ereditano da tale classe, a meno che non siano presenti più schede specializzate.An adapter for a control class applies to all controls that inherit from that class, unless more specialized adapters are present. È ad esempio possibile utilizzare un adapter BaseValidator per la classe per tutti Validator gli oggetti.For example, an adapter for the BaseValidator class can be used for all Validator objects.

In genere, gli adapter non ereditano ControlAdapter direttamente dalla classe, ma da una delle classi di base dell'adapter specifiche della destinazione che forniscono funzionalità aggiuntive specifiche per il tipo di controllo e il browser di destinazione o per 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 estesi tramite la composizione, in genere sono sufficienti gli adattatori di controllo figlio.If controls are extended through composition, generally the child control adapters are sufficient.

Ogni controllo dispone di mapping espliciti agli adapter tramite i file di definizione del browser.Each control has explicit mappings to adapters through the .browser definition files. Pertanto, qualsiasi accesso alla Control.Adapter proprietà utilizza l' HttpBrowserCapabilities oggetto estratto dai file di definizione del browser per eseguire la ricerca del mapping dell'adapter al 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, il .NET Framework intercetta le chiamate ai metodi sottoponibili a override di un controllo che possono essere specifici della destinazione.During processing, the .NET Framework intercepts calls to the overridable methods of a control that could be target-specific. Se un adattatore di controllo è collegato, il .NET Framework chiama i metodi dell'adapter associati.If a control adapter is attached, the .NET Framework calls the associated adapter methods.

L'adapter esegue il rendering per il controllo tramite Render il metodo.The adapter performs rendering for the control through the Render method. Se sottoposto a Render override, potrebbe non essere Control.Render in grado di chiamare l'implementazione della classe di base perché esegue una chiamata al metodo.If overridden, Render potentially should not call the base class implementation because that performs a call back on the Control.Render method. Il rendering potrebbe essere eseguito due volte, una volta dall'adapter e una volta dal controllo.This might cause the rendering to occur twice, once by the adapter and once by the control.

Il Render metodo di base richiama Control.Render il metodo del controllo.The Render base method calls back on the Control.Render method of the control. Pertanto, se si esegue Renderl'override di, non è necessario chiamare l'implementazione della classe di base, a meno che il rendering implementato non Control.Render sia in aggiunta a quello fornito da 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 il .NET Framework esegua l'intercettazione per gli adapter dei controlli figlio.You must ensure that the .NET Framework performs interception for adapters of the child controls. Questa operazione può essere eseguita chiamando il RenderChildren metodo di base, che chiama Control.RenderChildren il metodo del controllo, dall' Render override.You can do this by calling the RenderChildren base method, which calls the Control.RenderChildren method of the control, from your Render override.

I BeginRender metodi EndRender e vengono chiamati dal controllo immediatamente prima e dopo (rispettivamente) il controllo chiama il 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-e post-rendering sono le uniche attività di elaborazione specifiche del browser necessarie, BeginRender l' EndRender utilizzo di e potrebbe rendere non Rendernecessario eseguire l'override di.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 dei BeginRender metodi e EndRender prevede la chiamata dei metodi corrispondenti di. HtmlTextWriterThe default behavior of the BeginRender and EndRender methods is to call the corresponding methods of the HtmlTextWriter.

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

I OnInitmetodi OnLoaddi baseOnPreRender, OnUnload , e richiamano nei metodi Control della classe corrispondenti.The OnInit, OnLoad, OnPreRender, and OnUnload base methods call back on the corresponding Control class methods. Pertanto, uno di questi ControlAdapter metodi sottoposti a override deve chiamare i relativi metodi di base. in caso contrario, l' Control evento associato al 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.

Facoltativamente, i controlli e gli IPostBackDataHandler adapter IPostBackEventHandler implementano le interfacce e.Controls and adapters optionally implement the IPostBackDataHandler and IPostBackEventHandler interfaces. Il .NET Framework determina se esiste un adapter e se l'adapter implementa tali interfacce.The .NET Framework determines whether an adapter exists and whether the adapter implements these interfaces. In caso contrario, l'adapter deve eseguire l' LoadPostDataoverride RaisePostDataChangedEventdei metodi RaisePostBackEvent , e, a seconda delle esigenze.If it does, the adapter should override the LoadPostData, RaisePostDataChangedEvent, and RaisePostBackEvent methods, as necessary. Se i dati di postback non vengono riconosciuti nell'adapter, è necessario richiamarli sul controllo per elaborarli.If the postback data is not recognized in the adapter, it must call back on the control to process it. Anche i gestori eventi successivi devono richiamare il controllo.Subsequent event handlers also must call back on the control.

Note per gli eredi

Quando si eredita ControlAdapter dalla classe, un controllo che richiede la funzionalità dell'adapter generale deve disporre di una classe di base dell'adapter corrispondente, denominata nel criterio ControlType Adapter ( TextBoxAdapterad esempio,).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 tipizzata del controllo tramite la relativa Control proprietà.The adapter should at a minimum return a strongly-typed instance of the control through its Control property.

1.1. Gli adattatori di controllo per un determinato tipo di controllo e un linguaggio di markup MarkupControlType devono essere denominati nel criterio Adapter (ad esempio, XhtmlTextBoxAdapter).Control adapters for a given control type and markup language should be named in the pattern MarkupControlTypeAdapter (for example, XhtmlTextBoxAdapter). Gli adapter per un controllo devono essere implementati Adapters in uno spazio 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à del controllo.Control adapters should inherit from the appropriate base class and follow the same inheritance model as the control. Un adapter per un controllo che eredita Control dalla classe di base, ad esempio, deve ereditare dalla ControlAdapter classe o dalla classe pertinente. ControlType AdapterFor 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 adapter specializzati devono essere definiti per il controllo specializzato in tutti i nodi del dispositivo nei file Configuration. browser.Any specialized adapters should be defined for the specialized control under all of the device nodes in configuration .browser files.

Un controllo implementato correttamente non presuppone che un adapter sia collegato o che l'adapter collegato implementi 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, deve verificare la presenza di questi prima di chiamare.Instead, it should check for these before calling.

È possibile simulare l'override dei metodi OnClick(EventArgs) LinkButtondi evento protetti nel controllo, ad esempio il metodo di.It is possible to simulate overriding protected event methods in the control, such as the OnClick(EventArgs) method of the LinkButton. Per prima cosa, creare una classe di Adapter con un metodo OnClick.First, create an adapter class with an OnClick method. Creare quindi un nuovo controllo derivato da LinkButton ed eseguire l' OnClick(EventArgs) override del metodo.Then create a new control derived from LinkButton and override the OnClick(EventArgs) method. Il metodo sottoposto a override OnClick(EventArgs) chiama il metodo OnClick dell'adapter. The overridden OnClick(EventArgs) method calls the OnClick method of the adapter. L'oggetto adapter è disponibile tramite la proprietà Adapter protected Control della classe.The adapter object is available through the protected Adapter property of the Control class. La Adapter proprietà del controllo è null quando non è presente alcun adapter associato, quindi il 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()

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

Proprietà

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

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

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

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)

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()

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

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)

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

(Ereditato da Object)
GetHashCode()

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

(Ereditato da Object)
GetType()

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

(Ereditato da 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)

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()

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

(Ereditato da Object)
OnInit(EventArgs)

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

OnLoad(EventArgs)

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

OnPreRender(EventArgs)

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

OnUnload(EventArgs)

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

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)

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()

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

SaveAdapterViewState()

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

ToString()

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

(Ereditato da Object)

Si applica a

Vedi anche