ControlAdapter Třída

Definice

Přizpůsobí vykreslování odvozeného ovládacího prvku, ke kterému je adaptér připojen, pro úpravu výchozího kódu nebo chování pro konkrétní prohlížeče a je základní třídou, ze které dědí všechny řídicí adaptéry.

public ref class ControlAdapter abstract
public abstract class ControlAdapter
type ControlAdapter = class
Public MustInherit Class ControlAdapter
Dědičnost
ControlAdapter
Odvozené

Poznámky

Řídicí adaptéry jsou komponenty, které přepíší určité Control metody třídy a události v životním cyklu provádění, aby bylo možné zpracování specifické pro prohlížeč nebo značky. .NET Framework mapuje jeden odvozený řídicí adaptér na Control objekt pro každý požadavek klienta.

Adaptér upraví ovládací prvek pro konkrétní prohlížeč nebo třídu prohlížečů nebo funguje jako libovolný filtr některých funkcí. Adaptér je obvykle definován jazykem značek, který prohlížeč používá (například XHTML nebo HTML 3.2). Většinu adaptability při vykreslování chování lze zapouzdřovat ve specializovaných třídách odvozených HtmlTextWriter od třídy. Proto je pravděpodobné, že jeden adaptér lze použít pro řadu chování tříd prohlížeče nebo zahrnutí adaptability do HtmlTextWriter tříd by mohlo použití řídicího adaptéru nepotřebné.

Adaptér pro třídu ovládacího prvku platí pro všechny ovládací prvky, které dědí z této třídy, pokud nejsou k dispozici více specializovaných adaptérů. Například adaptér třídy BaseValidator lze použít pro všechny Validator objekty.

Adaptéry obvykle nedědí přímo z třídy, ale z ControlAdapter jedné ze základních tříd adaptéru specifické pro cíl, které poskytují další funkce specifické pro typ ovládacího prvku a cílový prohlížeč nebo konkrétní požadované vykreslování.

Samotné ovládací prvky nevyžadují adaptér. Pokud jsou ovládací prvky rozšířeny složením, jsou obecně dostačující podřízené řídicí adaptéry.

Každý ovládací prvek má explicitní mapování na adaptéry prostřednictvím definičních souborů prohlížeče. Každý přístup k Control.Adapter vlastnosti proto používá HttpBrowserCapabilities objekt extrahovaný ze souborů definic prohlížeče k provedení vyhledávání mapování adaptéru na řízení.

Během zpracování .NET Framework zachytí volání přepisovatelných metod ovládacího prvku, který může být specifický pro konkrétní cíl. Pokud je připojený řídicí adaptér, .NET Framework volá přidružené metody adaptéru.

Adaptér provádí vykreslování ovládacího prvku prostřednictvím Render metody. Při přepsání by potenciálně nemělo volat implementaci základní třídy, Render protože provádí volání zpět metody Control.Render . To může způsobit, že vykreslování proběhne dvakrát, jednou adaptérem a jednou ovládacím prvku.

Základní Render metoda volá zpět metodu Control.Render ovládacího prvku. Pokud tedy přepíšete Render, neměli byste volat implementaci základní třídy, pokud vykreslování, které implementujete, není kromě toho, které poskytuje Control.Render ovládací prvek.

Musíte zajistit, aby .NET Framework prováděl zachycování adaptérů podřízených ovládacích prvků. Můžete to provést voláním RenderChildren základní metody, která volá Control.RenderChildren metodu ovládacího prvku z přepsání Render .

Metody BeginRender a EndRender metody jsou volána ovládacím prvku bezprostředně před a za (v uvedeném pořadí) ovládací prvek volá metodu Render . Pokud jsou předběžné a následné vykreslování jediné požadované úlohy zpracování specifické pro prohlížeč, použití BeginRender a EndRender může ho vyžadovat zbytečné přepsání Render. Výchozí chování BeginRender a EndRender metody je volat odpovídající metody HtmlTextWriter.

Pro zachování vlastních informací o stavu může řídicí adaptér přepsat SaveAdapterControlState, , LoadAdapterControlStateSaveAdapterViewStatea LoadAdapterViewState metody. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlStatea LoadAdapterViewState jsou volána, když jsou uloženy a načteny stavy soukromého řízení a zobrazení, v uvedeném pořadí.

Metody OnInit, , OnPreRenderOnLoada OnUnload základní metody volají zpět odpovídající Control metody třídy. Proto každá z těchto ControlAdapter metod, které jsou přepsány, musí volat své základní metody; jinak událost přidružená k Control metodě třídy nebude vyvolána.

Ovládací prvky a adaptéry volitelně implementují IPostBackDataHandler rozhraní a IPostBackEventHandler rozhraní. .NET Framework určuje, jestli adaptér existuje a jestli adaptér implementuje tato rozhraní. Pokud ano, adaptér by měl podle potřeby přepsat LoadPostData, RaisePostDataChangedEventa RaisePostBackEvent metody. Pokud se v adaptéru nerozpozná data postbacku, musí volat zpět na ovládací prvek, aby je zpracovával. Další obslužné rutiny událostí také musí volat zpět na ovládací prvek.

Poznámky pro implementátory

Když dědíte z ControlAdapter třídy, ovládací prvek, který vyžaduje obecné funkce adaptéru by měl mít odpovídající základní třídu adaptéru pojmenovanou v vzoru ControlTypeAdapter (například TextBoxAdapter). Adaptér by měl minimálně vrátit instanci ovládacího prvku silného typu prostřednictvím jeho Control vlastnosti.

  1. Řídicí adaptéry pro daný typ ovládacího prvku a jazyk značek by měly být pojmenovány v vzoru MarkupControlTypeAdapter (například XhtmlTextBoxAdapter). Adaptéry pro ovládací prvek by měly být implementovány v Adapters podnájméně.

Řídicí adaptéry by měly dědit z příslušné základní třídy a dodržovat stejný model dědičnosti jako ovládací prvek. Například adaptér pro ovládací prvek dědící ze Control základní třídy by měl dědit z ControlAdapter třídy nebo příslušné ControlTypeAdapter třídy.

Všechny specializované adaptéry by měly být definovány pro specializovaný ovládací prvek ve všech uzlech zařízení v konfiguračních souborech prohlížeče.

Správně implementovaný ovládací prvek by neměl předpokládat, že je adaptér připojený nebo že připojený adaptér implementuje určité rozhraní. Místo toho by se měly před voláním zkontrolovat.

Je možné simulovat přepsání chráněných metod událostí v ovládacím prvku, například OnClick(EventArgs) metodu LinkButton. Nejprve vytvořte třídu adaptéru pomocí metody OnClick . Pak vytvořte nový ovládací prvek odvozený z LinkButton metody a přepište OnClick(EventArgs) ji. OnClick(EventArgs) Přepsáná metoda volá metodu OnClick adaptéru. Objekt adaptéru je k dispozici prostřednictvím chráněné Adapter vlastnosti Control třídy. Vlastnost Adapter ovládacího prvku je null , když není přidružený adaptér, takže jakýkoli kód by měl zkontrolovat tuto podmínku před voláním metod adaptéru.

Konstruktory

ControlAdapter()

Inicializuje novou instanci ControlAdapter třídy.

Vlastnosti

Browser

Získá odkaz na možnosti prohlížeče klienta, který provádí aktuální požadavek HTTP.

Control

Získá odkaz na ovládací prvek, ke kterému je tento ovládací adaptér připojen.

Page

Získá odkaz na stránku, kde se nachází ovládací prvek přidružený k tomuto adaptéru.

PageAdapter

Získá odkaz na adaptér stránky pro stránku, kde se nachází přidružený ovládací prvek.

Metody

BeginRender(HtmlTextWriter)

Volá se před vykreslováním ovládacího prvku. V odvozené třídě adaptéru vygeneruje otevírání značek, které jsou vyžadovány konkrétním cílem, ale nejsou potřeba prohlížeči HTML.

CreateChildControls()

Vytvoří podřízené ovládací prvky specifické pro cíl pro složený ovládací prvek.

EndRender(HtmlTextWriter)

Volá se po vykreslení ovládacího prvku. V odvozené třídě adaptéru generuje uzavírací značky, které jsou vyžadovány konkrétním cílem, ale nejsou potřeba prohlížeči HTML.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
LoadAdapterControlState(Object)

Načte informace o stavu řízení adaptéru uložené SaveAdapterControlState() během předchozího požadavku na stránku, na které je ovládací prvek přidružený k tomuto řídicímu adaptéru.

LoadAdapterViewState(Object)

Načte informace o stavu zobrazení adaptéru uložené SaveAdapterViewState() během předchozího požadavku na stránku, kde se nachází ovládací prvek přidružený k tomuto adaptéru ovládacího prvku.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
OnInit(EventArgs)

Přepíše metodu OnInit(EventArgs) přidruženého ovládacího prvku.

OnLoad(EventArgs)

Přepíše metodu OnLoad(EventArgs) přidruženého ovládacího prvku.

OnPreRender(EventArgs)

Přepíše metodu OnPreRender(EventArgs) přidruženého ovládacího prvku.

OnUnload(EventArgs)

Přepíše metodu OnUnload(EventArgs) přidruženého ovládacího prvku.

Render(HtmlTextWriter)

Vygeneruje cílovou značku pro ovládací prvek, ke kterému je připojený řídicí adaptér.

RenderChildren(HtmlTextWriter)

Vygeneruje značku specifickou pro cíl pro podřízené ovládací prvky ve složeném ovládacím prvku, ke kterému je ovládací adaptér připojený.

SaveAdapterControlState()

Uloží informace o stavu ovládacího prvku pro adaptér ovládacího prvku.

SaveAdapterViewState()

Uloží informace o stavu ovládacího adaptéru.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také