ControlAdapter Clase

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
ControlAdapter
Derivado

Comentarios

Los adaptadores de control son componentes que invalidan determinados Control métodos y eventos de clase en su ciclo de vida de ejecución para permitir el explorador o el control específico del marcado.Control adapters are components that override certain Control class methods and events in its execution lifecycle to allow browser or markup-specific handling. El .NET Framework asigna un único adaptador de control derivado a Control un 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 concreto o una clase de exploradores o actúa como filtro arbitrario en alguna funcionalidad.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 usa 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 adaptación del comportamiento de la representación se puede encapsular en las clases especializadas que derivan HtmlTextWriter de la 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 se pueda usar un único adaptador para una serie de comportamientos de clase de explorador o que la inclusión de la HtmlTextWriter adaptabilidad en las clases pueda hacer que el uso de un adaptador de control sea 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 se puede usar para todos Validator los objetos.For example, an adapter for the BaseValidator class can be used for all Validator objects.

Normalmente, los adaptadores no heredan directamente de ControlAdapter la clase, sino de una de las clases base de adaptador específicas del destino que proporcionan una funcionalidad adicional específica para el tipo de control y el explorador de destino o la representación concreta 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 controles no requieren necesariamente un adaptador.Controls themselves do not necessarily require an adapter. Si los controles se extienden a través de la composición, los adaptadores de control secundarios suelen ser suficientes.If controls are extended through composition, generally the child control adapters are sufficient.

Cada control tiene asignaciones explícitas a los adaptadores a través de los archivos de definición de. Browser.Each control has explicit mappings to adapters through the .browser definition files. Por lo tanto, cualquier acceso Control.Adapter a la propiedad HttpBrowserCapabilities usa el objeto extraído de los archivos de definición del explorador para realizar la búsqueda de la asignación del adaptador que se va a controlar.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, el .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 se adjunta un adaptador de control, el .NET Framework llama a los métodos de adaptador asociados.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 del 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 porque realiza una devolución de Control.Render llamada en el 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 hacer que la representación se produjera dos veces, una por el adaptador y otra por el control.This might cause the rendering to occur twice, once by the adapter and once by the control.

El Render método base llama de nuevo en Control.Render el método del control.The Render base method calls back on the Control.Render method of the control. Por lo tanto, si Renderse invalida, no se debe llamar a la implementación de la clase base a menos que la representación que se implementa Control.Render sea además de la que proporciona el 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 el .NET Framework realiza la interceptación de los adaptadores de los controles secundarios.You must ensure that the .NET Framework performs interception for adapters of the child controls. Para ello, puede llamar al RenderChildren método base, que llama al Control.RenderChildren método del control, desde su Render invalidación.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 control EndRender llama a los métodos y inmediatamente antes y después (respectivamente) el control llama al 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 la representación previa y posterior es la única tarea de procesamiento específica del explorador necesaria, el uso BeginRender de EndRender y puede hacer que no sea Rendernecesario invalidar.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 los BeginRender métodos EndRender y es llamar a HtmlTextWriterlos métodos correspondientes de.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 SaveAdapterControlStateinvalidar SaveAdapterViewStatelos métodos LoadAdapterViewState , LoadAdapterControlState, y.To maintain its own state information, a control adapter can override the SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, and LoadAdapterViewState methods. SaveAdapterControlStatese SaveAdapterViewStatellama LoadAdapterControlStatea, LoadAdapterViewState , y cuando se guardan y cargan los Estados de vista y control privado, respectivamente.SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, and LoadAdapterViewState are called when the private control and view states are saved and loaded, respectively.

Los OnInitmétodos OnLoadbase OnPreRender,, yOnUnload devuelven la llamada en Control los métodos de clase correspondientes.The OnInit, OnLoad, OnPreRender, and OnUnload base methods call back on the corresponding Control class methods. Por lo tanto, cualquiera ControlAdapter de estos métodos que se invalidan debe llamar a sus métodos base; de lo contrario Control , no se generará el evento asociado al 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.

Los controles y adaptadores, opcionalmente, IPostBackDataHandler implementan las interfaces y IPostBackEventHandler .Controls and adapters optionally implement the IPostBackDataHandler and IPostBackEventHandler interfaces. El .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 invalidar LoadPostDatalos RaisePostDataChangedEventmétodos, RaisePostBackEvent y, según sea necesario.If it does, the adapter should override the LoadPostData, RaisePostDataChangedEvent, and RaisePostBackEvent methods, as necessary. Si los datos de postback no se reconocen en el adaptador, debe volver a llamar al control para procesarlos.If the postback data is not recognized in the adapter, it must call back on the control to process it. Los controladores de eventos subsiguientes también deben devolver la llamada en el control.Subsequent event handlers also must call back on the control.

Notas a los implementadores

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

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

Los adaptadores de control deben heredar de la clase base adecuada y seguir 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 clase base debe heredar de la ControlAdapter clase o de la ControlType clase pertinente Adapter .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 bajo todos los nodos del dispositivo en los archivos Configuration. Browser.Any specialized adapters should be defined for the specialized control under all of the device nodes in configuration .browser files.

Un control implementado correctamente no debe suponer que hay un adaptador asociado o que el adaptador adjunto 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 comprobarlos antes de llamar a.Instead, it should check for these before calling.

Es posible simular la invalidación de métodos de eventos protegidos en el control, como el OnClick(EventArgs) método LinkButtonde.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 un método onclick .First, create an adapter class with an OnClick method. A continuación, cree un nuevo control LinkButton derivado de e OnClick(EventArgs) invalide el método.Then create a new control derived from LinkButton and override the OnClick(EventArgs) method. El método invalidado OnClick(EventArgs) llama al método onclick del adaptador.The overridden OnClick(EventArgs) method calls the OnClick method of the adapter. El objeto de adaptador está disponible a través Adapter de la propiedad Control protegida de la clase.The adapter object is available through the protected Adapter property of the Control class. La Adapter propiedad del control es null cuando no hay ningún adaptador asociado, por lo que cualquier código debe comprobar esa condición antes de llamar a los 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()

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

Propiedades

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

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

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

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)

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

Crea los controles secundarios específicos del destino para un control compuesto.Creates the target-specific child controls for a composite control.

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)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

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

(Heredado de Object)
GetType()

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

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

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

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnInit(EventArgs)

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

OnLoad(EventArgs)

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

OnPreRender(EventArgs)

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

OnUnload(EventArgs)

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

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)

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

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

SaveAdapterViewState()

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

ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también: