ControlAdapter ControlAdapter ControlAdapter ControlAdapter Class

Definición

Personaliza la representación del control derivado al que está asociado el adaptador, para modificar el marcado o el comportamiento predeterminados para exploradores concretos, y es la clase base de la que heredan todos los adaptadores de control.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
Herencia
ControlAdapterControlAdapterControlAdapterControlAdapter
Derivado

Comentarios

Los adaptadores de control son componentes que invalidación determinados Control clase métodos y eventos de su ciclo de vida de ejecución para permitir que un control específico del marcado o explorador.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 asigna un adaptador de control derivada solo un Control objeto para cada solicitud de cliente.The .NET Framework maps a single derived control adapter to a Control object for each client request.

Un adaptador modifica un control para un explorador específico o una clase de exploradores o actúa como filtro arbitrario en alguna función.An adapter modifies a control for a specific browser or class of browsers or acts as an arbitrary filter on some capability. Normalmente, el adaptador se define mediante el lenguaje de marcado que utiliza el explorador (por ejemplo, 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 de la adaptabilidad del comportamiento de representación se puede encapsular en las clases especializadas que se derivan de la HtmlTextWriter clase.Much of the adaptability in rendering behavior can be encapsulated in the specialized classes that derive from the HtmlTextWriter class. Por lo tanto, es probable que un único adaptador puede usarse para un número de comportamientos de clase de explorador o que su inclusión de la adaptabilidad de la HtmlTextWriter clases podrían hacer que el uso de un adaptador de control innecesario.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 adaptador para una clase de control se aplica a todos los controles que heredan de esa clase, a menos que estén presentes adaptadores más especializados.An adapter for a control class applies to all controls that inherit from that class, unless more specialized adapters are present. Por ejemplo, un adaptador para la BaseValidator clase puede utilizarse para todos los Validator objetos.For example, an adapter for the BaseValidator class can be used for all Validator objects.

Los adaptadores normalmente no heredan directamente de la ControlAdapter (clase), pero desde el uno del adaptador específico del destino de las clases que proporcionan funcionalidad adicional específica del explorador de control de tipo y de destino base o la representación particular requerida.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.

Los propios controles no requieren necesariamente un adaptador.Controls themselves do not necessarily require an adapter. Si los controles se extienden a través de composición, generalmente son suficientes los adaptadores de control secundario.If controls are extended through composition, generally the child control adapters are sufficient.

Cada control tiene asignaciones explícitas a adaptadores a través de los archivos de definición .browser.Each control has explicit mappings to adapters through the .browser definition files. Por lo tanto, cualquier acceso a la Control.Adapter propiedad usa el HttpBrowserCapabilities objeto extraído de los archivos de definición de explorador para realizar la búsqueda para la asignación del adaptador al control.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 el procesamiento, .NET Framework intercepta las llamadas a los métodos reemplazables de un control que podría ser específico del destino.During processing, the .NET Framework intercepts calls to the overridable methods of a control that could be target-specific. Si está conectado a un adaptador de control, .NET Framework llama a los métodos de adaptador asociado.If a control adapter is attached, the .NET Framework calls the associated adapter methods.

El adaptador realiza la representación del control a través de la Render método.The adapter performs rendering for the control through the Render method. Si se reemplaza, Render potencialmente no debe llamar a la implementación de la clase base ya que realiza una llamada de vuelta en el Control.Render método.If overridden, Render potentially should not call the base class implementation because that performs a call back on the Control.Render method. Esto podría provocar la representación que se produzcan dos veces, una vez por el adaptador y una vez por el control.This might cause the rendering to occur twice, once by the adapter and once by the control.

El Render basar las llamadas a métodos en el Control.Render método del control.The Render base method calls back on the Control.Render method of the control. Por lo tanto, si invalida Render, no debe llamar a la implementación de la clase base a menos que la representación que implemente a la que se proporciona por Control.Render del control.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.

Debe asegurarse de que .NET Framework realiza interceptación para los adaptadores de los controles secundarios.You must ensure that the .NET Framework performs interception for adapters of the child controls. Puede hacerlo mediante una llamada a la RenderChildren basar el método que llama el Control.RenderChildren método del control, desde su Render invalidar.You can do this by calling the RenderChildren base method, which calls the Control.RenderChildren method of the control, from your Render override.

El BeginRender y EndRender llama a métodos del control inmediatamente antes y después (respectivamente) en el control llama el Render método.The BeginRender and EndRender methods are called by the control immediately before and after (respectively) the control calls the Render method. Si previas y posteriores a la representación sólo explorador específico del procesan las tareas necesarias, usar BeginRender y EndRender pueden hacer necesario invalidar 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. El comportamiento predeterminado de la BeginRender y EndRender métodos consiste en llamar a los métodos correspondientes de la HtmlTextWriter.The default behavior of the BeginRender and EndRender methods is to call the corresponding methods of the HtmlTextWriter.

Para mantener su propia información de estado, un adaptador de control puede invalidar el SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, y LoadAdapterViewState métodos.To maintain its own state information, a control adapter can override the SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, and LoadAdapterViewState methods. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, y LoadAdapterViewState se llama cuando se guardan los Estados de control y vista privados y se carga, respectivamente.SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, and LoadAdapterViewState are called when the private control and view states are saved and loaded, respectively.

El OnInit, OnLoad, OnPreRender, y OnUnload base llamada de métodos en la correspondiente Control métodos de la clase.The OnInit, OnLoad, OnPreRender, and OnUnload base methods call back on the corresponding Control class methods. Por lo tanto, cualquiera de estos ControlAdapter métodos que son reemplazados deben llamar a sus métodos base; de lo contrario, el evento asociado con el Control no se generará el método de clase.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.

Opcionalmente, puede implementan controles y los adaptadores del IPostBackDataHandler y IPostBackEventHandler interfaces.Controls and adapters optionally implement the IPostBackDataHandler and IPostBackEventHandler interfaces. .NET Framework determina si existe un adaptador y si el adaptador implementa estas interfaces.The .NET Framework determines whether an adapter exists and whether the adapter implements these interfaces. Si es así, el adaptador debe reemplazar el LoadPostData, RaisePostDataChangedEvent, y RaisePostBackEvent métodos, según sea necesario.If it does, the adapter should override the LoadPostData, RaisePostDataChangedEvent, and RaisePostBackEvent methods, as necessary. Si no se reconocen los datos de postback en el adaptador, debe llamar a atrás en el control para procesarlo.If the postback data is not recognized in the adapter, it must call back on the control to process it. Controladores de eventos subsiguientes también deben volver a llamar el control.Subsequent event handlers also must call back on the control.

Notas a los desarrolladores de herederos

Al heredar de la ControlAdapter (clase), un control que requiere la funcionalidad del adaptador general debe tener un adaptador correspondiente de la clase con nombre en el patrón de base ControlType Adapter (por ejemplo, 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). Como mínimo, el adaptador debería devolver una instancia fuertemente tipada del control a través de su Control propiedad.The adapter should at a minimum return a strongly-typed instance of the control through its Control property.

1.1. Adaptadores de controles para un lenguaje de marcado y de tipo de control determinado debe tener un nombre en el patrón de MarkupControlType Adapter (por ejemplo, XhtmlTextBoxAdapter).Control adapters for a given control type and markup language should be named in the pattern MarkupControlTypeAdapter (for example, XhtmlTextBoxAdapter). Los adaptadores de control deben implementarse en un Adapters subespacio.Adapters for a control should be implemented in an Adapters subnamespace.

Adaptadores de control deben heredar de la clase base adecuada y siga el mismo modelo de herencia que el control.Control adapters should inherit from the appropriate base class and follow the same inheritance model as the control. Por ejemplo, un adaptador para un control que hereda de la Control debería heredar la clase base desde la ControlAdapter clase o la correspondiente ControlType Adapter clase.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.

Los adaptadores especializados deben definirse para el control especializado en todos los nodos de dispositivo .browser en archivos de configuración.Any specialized adapters should be defined for the specialized control under all of the device nodes in configuration .browser files.

Un control correctamente implementado no debe suponer que un adaptador está conectado o que el adaptador asociado implementa una interfaz específica.A properly implemented control should not assume that an adapter is attached, or that the attached adapter implements a specific interface. En su lugar, debe comprobar estas antes de llamar a.Instead, it should check for these before calling.

Es posible simular invalidar los métodos de evento protegido en el control, como el OnClick(EventArgs) método de la LinkButton.It is possible to simulate overriding protected event methods in the control, such as the OnClick(EventArgs) method of the LinkButton. En primer lugar, cree una clase de adaptador con una OnClick método.First, create an adapter class with an OnClick method. A continuación, cree un nuevo control derivado de LinkButton e invalidar la OnClick(EventArgs) método.Then create a new control derived from LinkButton and override the OnClick(EventArgs) method. Invalidado OnClick(EventArgs) llamadas al método el OnClick método del adaptador.The overridden OnClick(EventArgs) method calls the OnClick method of the adapter. El objeto de adaptador está disponible a través de protegido Adapter propiedad de la Control clase.The adapter object is available through the protected Adapter property of the Control class. El Adapter es propiedad del control null cuando no hay ningún adaptador asociado, por lo que cualquier código debe comprobar esa condición antes de llamar a métodos del adaptador.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.

Constructores

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

Inicializa una nueva instancia de la clase ControlAdapter.Initializes a new instance of the ControlAdapter class.

Propiedades

Browser Browser Browser Browser

Obtiene una referencia a las posibilidades del explorador del cliente que realiza la solicitud HTTP actual.Gets a reference to the browser capabilities of the client making the current HTTP request.

Control Control Control Control

Obtiene una referencia al control al que está asociado este adaptador de control.Gets a reference to the control to which this control adapter is attached.

Page Page Page Page

Obtiene una referencia a la página donde reside el control asociado a este adaptador.Gets a reference to the page where the control associated with this adapter resides.

PageAdapter PageAdapter PageAdapter PageAdapter

Obtiene una referencia al adaptador de la página donde reside el control asociado.Gets a reference to the page adapter for the page where the associated control resides.

Métodos

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

Se le llama antes de la representación de un control.Called prior to the rendering of a control. En una clase de adaptador derivada, genera etiquetas de apertura requeridas por un destino concreto pero que no son necesarias para los exploradores de 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 los controles secundarios específicos del destino para un control compuesto.Creates the target-specific child controls for a composite control.

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

Se le llama después de la representación de un control.Called after the rendering of a control. En una clase de adaptador derivada, genera etiquetas de cierre requeridas por un destino concreto pero que no son necesarias para los exploradores de 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 si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

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

Sirve como la función hash predeterminada.Serves as the default hash function.

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

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

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

Carga información de estado del control de adaptador, guardada por SaveAdapterControlState() durante una solicitud anterior, en la página donde reside el control asociado a este adaptador de control.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)

Carga información del estado de la vista del adaptador, guardada por SaveAdapterViewState() durante una solicitud anterior, en la página donde reside el control asociado a este adaptador de control.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 superficial del objeto Object actual.Creates a shallow copy of the current Object.

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

Reemplaza el método OnInit(EventArgs) para el control asociado.Overrides the OnInit(EventArgs) method for the associated control.

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

Reemplaza el método OnLoad(EventArgs) para el control asociado.Overrides the OnLoad(EventArgs) method for the associated control.

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

Reemplaza el método OnPreRender(EventArgs) para el control asociado.Overrides the OnPreRender(EventArgs) method for the associated control.

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

Reemplaza el método OnUnload(EventArgs) para el control asociado.Overrides the OnUnload(EventArgs) method for the associated control.

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

Genera el marcado específico del destino para el control al que está asociado el adaptador de control.Generates the target-specific markup for the control to which the control adapter is attached.

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

Genera el marcado específico del destino para los controles secundarios en un control compuesto al que está asociado el adaptador de control.Generates the target-specific markup for the child controls in a composite control to which the control adapter is attached.

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

Guarda información de estado de control para el adaptador de control.Saves control state information for the control adapter.

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

Guarda información del estado de vista para el adaptador de control.Saves view state information for the control adapter.

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

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Se aplica a

Consulte también: