ControlAdapter Klasa

Definicja

Dostosowuje renderowanie formantu pochodnego, do którego jest dołączona karta, aby zmodyfikować domyślne znaczniki lub zachowanie dla określonych przeglądarek i jest klasą bazową, z której dziedziczą wszystkie karty sterowania.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
Dziedziczenie
ControlAdapter
Pochodne

Uwagi

Adaptery sterowania są składnikami, Control które zastępują pewne metody klasy i zdarzenia w cyklu życia wykonywania, aby zezwolić na obsługę przeglądarki lub konkretnego oznakowania.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 mapuje pojedynczą pochodną kartę kontrolną Control na obiekt dla każdego żądania klienta.The .NET Framework maps a single derived control adapter to a Control object for each client request.

Karta modyfikuje formant dla konkretnej przeglądarki lub klasy przeglądarek lub działa jako dowolny filtr w przypadku niektórych możliwości.An adapter modifies a control for a specific browser or class of browsers or acts as an arbitrary filter on some capability. Zazwyczaj karta jest definiowana przez język znaczników wykorzystywany przez przeglądarkę (na przykład XHTML lub HTML 3,2).Typically the adapter is defined by the markup language that the browser uses (for example, XHTML or HTML 3.2). Wiele możliwości adaptacji w zachowaniu renderowania można hermetyzować w wyspecjalizowanych klasach, które pochodzą od HtmlTextWriter klasy.Much of the adaptability in rendering behavior can be encapsulated in the specialized classes that derive from the HtmlTextWriter class. W związku z tym jest możliwe, że jedna karta może być używana przez wiele zachowań klas przeglądarki lub włączenie adaptacji w HtmlTextWriter klasach może spowodować niepotrzebne użycie karty kontrolnej.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.

Adapter klasy kontroli ma zastosowanie do wszystkich kontrolek, które dziedziczą z tej klasy, chyba że są obecne bardziej wyspecjalizowane karty.An adapter for a control class applies to all controls that inherit from that class, unless more specialized adapters are present. Na przykład adapter dla BaseValidator klasy może być używany dla wszystkich Validator obiektów.For example, an adapter for the BaseValidator class can be used for all Validator objects.

Karty zazwyczaj nie dziedziczą bezpośrednio z ControlAdapter klasy, ale z jednej z klas bazowych specyficznych dla konkretnego obiektu docelowego, które udostępniają dodatkowe funkcje specyficzne dla typu formantu i przeglądarki docelowej lub wymagane jest określone renderowanie.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.

Kontrolki same nie wymagają karty.Controls themselves do not necessarily require an adapter. Jeśli kontrolki są rozszerzane za pomocą kompozycji, zazwyczaj wystarczą podrzędne karty sterujące.If controls are extended through composition, generally the child control adapters are sufficient.

Każdy formant ma jawne mapowania do kart sieciowych za pomocą plików definicji przeglądarki.Each control has explicit mappings to adapters through the .browser definition files. W ten sposób każdy dostęp do Control.Adapter właściwości HttpBrowserCapabilities używa obiektu wyodrębnionego z plików definicji przeglądarki w celu przeszukania mapowania karty do kontroli.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.

Podczas przetwarzania .NET Framework przechwytuje wywołania metodyki, które mogą być specyficzne dla elementu docelowego.During processing, the .NET Framework intercepts calls to the overridable methods of a control that could be target-specific. W przypadku dołączenia karty kontrolnej .NET Framework wywołuje skojarzone metody adaptera.If a control adapter is attached, the .NET Framework calls the associated adapter methods.

Adapter wykonuje renderowanie kontrolki za pomocą Render metody.The adapter performs rendering for the control through the Render method. Jeśli jest zastępowany, potencjalnie nie powinna wywołać implementacji klasy bazowej, Render ponieważ wykonuje wywołanie z powrotem Control.Render metody.If overridden, Render potentially should not call the base class implementation because that performs a call back on the Control.Render method. Może to spowodować, że renderowanie występuje dwa razy, raz przez kartę i jeden raz przez formant.This might cause the rendering to occur twice, once by the adapter and once by the control.

Metoda bazowa wywołuje z powrotem Control.Render metodę kontrolki. RenderThe Render base method calls back on the Control.Render method of the control. W tym przypadku, jeśli Renderprzesłonisz, nie należy wywoływać implementacji klasy bazowej, chyba że implementowane renderowanie jest uzupełnieniem Control.Render tego, co jest dostarczane przez formant.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.

Należy upewnić się, że .NET Framework wykonuje przechwycenie dla kart formantów podrzędnych.You must ensure that the .NET Framework performs interception for adapters of the child controls. Można to zrobić, wywołując RenderChildren metodę bazową, która Control.RenderChildren wywołuje metodę kontrolki z Render przesłonięcia.You can do this by calling the RenderChildren base method, which calls the Control.RenderChildren method of the control, from your Render override.

Metody BeginRender Render i EndRender są wywoływane przez formant bezpośrednio przed i po (odpowiednio) formant wywołuje metodę.The BeginRender and EndRender methods are called by the control immediately before and after (respectively) the control calls the Render method. Jeśli przed i po wyrenderowaniu są jedyne wymagane zadania przetwarzania specyficzne dla przeglądarki, użycie BeginRender i EndRender może uniemożliwić przesłonięcie 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. Domyślne zachowanie BeginRender metod i EndRender polega na wywołaniu odpowiednich metod HtmlTextWriter.The default behavior of the BeginRender and EndRender methods is to call the corresponding methods of the HtmlTextWriter.

Aby zachować własne informacje o stanie, adapter kontrolny może przesłonić SaveAdapterControlStatemetody SaveAdapterViewState, LoadAdapterControlState, LoadAdapterViewState i.To maintain its own state information, a control adapter can override the SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewState, and LoadAdapterViewState methods. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState iLoadAdapterViewState są wywoływane, gdy prywatne i Stany widoku są zapisywane i ładowane odpowiednio.SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlState, and LoadAdapterViewState are called when the private control and view states are saved and loaded, respectively.

Control Metody OnInit, OnLoad ,OnPreRenderi bazoweOnUnload odwołują się z powrotem do odpowiednich metod klasy.The OnInit, OnLoad, OnPreRender, and OnUnload base methods call back on the corresponding Control class methods. W rezultacie każda z tych ControlAdapter metod, które są zastępowane, musi wywoływać metody podstawowe; w przeciwnym razie zdarzenie Control skojarzone z metodą klasy nie zostanie zgłoszone.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.

Formanty i karty opcjonalnie implementują IPostBackDataHandler interfejsy IPostBackEventHandler i.Controls and adapters optionally implement the IPostBackDataHandler and IPostBackEventHandler interfaces. .NET Framework określa, czy karta istnieje i czy karta implementuje te interfejsy.The .NET Framework determines whether an adapter exists and whether the adapter implements these interfaces. W takim przypadku adapter powinien zastąpić LoadPostDatametody, RaisePostDataChangedEvent, i RaisePostBackEvent , w razie potrzeby.If it does, the adapter should override the LoadPostData, RaisePostDataChangedEvent, and RaisePostBackEvent methods, as necessary. Jeśli dane ogłaszania zwrotnego nie są rozpoznawane na karcie, muszą zostać wywywoływane z powrotem na kontrolce, aby ją przetworzyć.If the postback data is not recognized in the adapter, it must call back on the control to process it. Kolejne programy obsługi zdarzeń muszą również wywołać z powrotem na kontrolce.Subsequent event handlers also must call back on the control.

Uwagi dotyczące implementowania

W przypadku dziedziczenia z ControlAdapter klasy, formant, który wymaga funkcji adaptera ogólnego, powinien mieć odpowiadającą klasę bazową karty o nazwie ControlType w wzorcu Adapter ( TextBoxAdapterna przykład).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). Adapter powinien w minimalnej mierze zwracać wystąpienie o jednoznacznie określonym typie kontrolki za pomocą jego Control właściwości.The adapter should at a minimum return a strongly-typed instance of the control through its Control property.

1.1. Adaptery kontrolne dla danego typu kontrolki i języka adiustacji powinny być nazwane MarkupControlType we wzorcu Adapter ( XhtmlTextBoxAdapterna przykład).Control adapters for a given control type and markup language should be named in the pattern MarkupControlTypeAdapter (for example, XhtmlTextBoxAdapter). Adaptery dla kontrolki powinny być zaimplementowane w Adapters podprzestrzeni nazw.Adapters for a control should be implemented in an Adapters subnamespace.

Adaptery kontrolne powinny dziedziczyć z odpowiedniej klasy bazowej i stosować ten sam model dziedziczenia co formant.Control adapters should inherit from the appropriate base class and follow the same inheritance model as the control. Na przykład karta Control dla kontrolki dziedziczące z klasy bazowej powinna dziedziczyć ControlAdapter po klasie lub odpowiedniej ControlType Adapter klasie.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.

Wszystkie wyspecjalizowane karty powinny być zdefiniowane dla wyspecjalizowanej kontrolki pod wszystkimi węzłami urządzeń w plikach Configuration. browser.Any specialized adapters should be defined for the specialized control under all of the device nodes in configuration .browser files.

Prawidłowo zaimplementowana kontrola nie powinna zakładać, że karta jest dołączona lub że załączona karta implementuje określony interfejs.A properly implemented control should not assume that an adapter is attached, or that the attached adapter implements a specific interface. Zamiast tego należy sprawdzić je przed wywołaniem.Instead, it should check for these before calling.

Istnieje możliwość symulowania przesłaniania chronionych metod zdarzeń w formancie, takich jak OnClick(EventArgs) Metoda. LinkButtonIt is possible to simulate overriding protected event methods in the control, such as the OnClick(EventArgs) method of the LinkButton. Najpierw Utwórz klasę adaptera przy użyciu metody onkliknięciu .First, create an adapter class with an OnClick method. Następnie utwórz nową kontrolkę pochodną LinkButton i OnClick(EventArgs) Zastąp metodę.Then create a new control derived from LinkButton and override the OnClick(EventArgs) method. Zastąpiona OnClick(EventArgs) metoda wywołuje metodę onkliknięcia karty.The overridden OnClick(EventArgs) method calls the OnClick method of the adapter. Obiekt adapter jest dostępny za pomocą chronionej Adapter właściwości Control klasy.The adapter object is available through the protected Adapter property of the Control class. Właściwość kontrolki ma null brak skojarzonej karty, dlatego każdy kod powinien sprawdzić pod kątem tego warunku przed wywołaniem metody karty. AdapterThe 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.

Konstruktory

ControlAdapter()

Inicjuje nowe wystąpienie klasy ControlAdapter klasy.Initializes a new instance of the ControlAdapter class.

Właściwości

Browser

Pobiera odwołanie do możliwości przeglądarki klienta wykonujące bieżące żądanie HTTP.Gets a reference to the browser capabilities of the client making the current HTTP request.

Control

Pobiera odwołanie do kontrolki, do której jest dołączona ta karta sterowania.Gets a reference to the control to which this control adapter is attached.

Page

Pobiera odwołanie do strony, na której znajduje się kontrolka skojarzona z tą kartą.Gets a reference to the page where the control associated with this adapter resides.

PageAdapter

Pobiera odwołanie do karty strony dla strony, w której znajduje się skojarzony formant.Gets a reference to the page adapter for the page where the associated control resides.

Metody

BeginRender(HtmlTextWriter)

Wywołuje się przed renderowaniem formantu.Called prior to the rendering of a control. W klasie pochodnej karty generuje Tagi otwierające wymagane przez określony element docelowy, ale nie są wymagane przez przeglądarki HTML.In a derived adapter class, generates opening tags that are required by a specific target but not needed by HTML browsers.

CreateChildControls()

Tworzy kontrolki podrzędne specyficzne dla elementu docelowego dla formantu złożonego.Creates the target-specific child controls for a composite control.

EndRender(HtmlTextWriter)

Wywoływana po renderowaniu kontrolki.Called after the rendering of a control. W klasie pochodnej karty generuje tagi zamykające wymagane przez określony element docelowy, ale nie są wymagane przez przeglądarki HTML.In a derived adapter class, generates closing tags that are required by a specific target but not needed by HTML browsers.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
LoadAdapterControlState(Object)

Ładuje informacje o stanie kontroli karty, które zostały SaveAdapterControlState() zapisane przez program podczas poprzedniego żądania do strony, na której znajduje się kontrolka skojarzona z tą kartą kontrolną.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)

Ładuje informacje o stanie widoku karty, które zostały SaveAdapterViewState() zapisane przez program podczas poprzedniego żądania do strony, na której znajduje się kontrolka skojarzona z tą kartą kontrolną.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()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnInit(EventArgs)

OnInit(EventArgs) Zastępuje metodę skojarzoną z kontrolką.Overrides the OnInit(EventArgs) method for the associated control.

OnLoad(EventArgs)

OnLoad(EventArgs) Zastępuje metodę skojarzoną z kontrolką.Overrides the OnLoad(EventArgs) method for the associated control.

OnPreRender(EventArgs)

OnPreRender(EventArgs) Zastępuje metodę skojarzoną z kontrolką.Overrides the OnPreRender(EventArgs) method for the associated control.

OnUnload(EventArgs)

OnUnload(EventArgs) Zastępuje metodę skojarzoną z kontrolką.Overrides the OnUnload(EventArgs) method for the associated control.

Render(HtmlTextWriter)

Generuje oznakowanie specyficzne dla elementu docelowego dla kontrolki, do której jest dołączona karta sterowania.Generates the target-specific markup for the control to which the control adapter is attached.

RenderChildren(HtmlTextWriter)

Generuje oznakowanie specyficzne dla elementu docelowego dla kontrolek podrzędnych w kontrolce złożonej, do której jest dołączona karta sterowania.Generates the target-specific markup for the child controls in a composite control to which the control adapter is attached.

SaveAdapterControlState()

Zapisuje informacje o stanie kontroli dla karty sterującej.Saves control state information for the control adapter.

SaveAdapterViewState()

Zapisuje informacje o stanie widoku dla karty sterującej.Saves view state information for the control adapter.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Dotyczy

Zobacz też