Sdílet prostřednictvím


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 adaptéry ovládacích prvků.

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

Poznámky

Adaptéry ovládacích prvků jsou komponenty, které v životním cyklu provádění přepíší určité Control metody třídy a události, aby bylo možné zpracování specifické pro prohlížeč nebo revize. Rozhraní .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). Velká část adaptability při vykreslování chování lze zapouzdřovat ve specializovaných třídách, které jsou odvozeny od HtmlTextWriter třídy. Proto je pravděpodobné, že jeden adaptér může být použit pro řadu chování třídy prohlížeče nebo že zahrnutí přizpůsobitelnosti do HtmlTextWriter tříd může znamenat, že použití řídicího adaptéru není nutné.

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 přítomny více specializovaných adaptérů. Například adaptér pro BaseValidator třídu lze použít pro všechny Validator objekty.

Adaptéry obvykle nedědí přímo z ControlAdapter třídy, ale z jedné ze základních tříd adaptérů specifických 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 nemusí nutně vyžadovat 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. Proto jakýkoli přístup k Control.Adapter vlastnosti používá HttpBrowserCapabilities objekt extrahovaný ze souborů definic prohlížeče k vyhledání mapování adaptéru na řízení.

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

Adaptér provádí vykreslování ovládacího prvku prostřednictvím Render metody. Pokud je přepsáno, potenciálně by nemělo volat implementaci základní třídy, Render protože provádí volání zpět v Control.Render metodě. 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í navíc k tomu, co poskytuje Control.Render ovládací prvek.

Musíte zajistit, aby rozhraní .NET Framework provádělo zachycení 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 .

Ovládací BeginRender prvek a EndRender metody jsou volána 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 vyžadovat zbytečné přepsání Render. Výchozí chování BeginRender a EndRender metody je volat odpovídající metody HtmlTextWriter.

Chcete-li zachovat vlastní informace o stavu, může řídicí adaptér přepsat SaveAdapterControlState, LoadAdapterControlState, SaveAdapterViewStatea LoadAdapterViewState metody. SaveAdapterControlState, SaveAdapterViewState, LoadAdapterControlStatea LoadAdapterViewState jsou volána, když jsou soukromé ovládací prvky a stavy zobrazení uloženy a načteny, v uvedeném pořadí.

Metody OnInit, OnLoadOnPreRendera 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 jejich 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í.IPostBackEventHandler Rozhraní .NET Framework určuje, zda adaptér existuje a zda adaptér implementuje tato rozhraní. Pokud ano, adaptér by měl podle potřeby přepsat LoadPostData, RaisePostDataChangedEventa RaisePostBackEvent metody. Pokud se data postbacku v adaptéru nerozpoznaná, musí zavolat zpět na ovládací prvek, který je zpracuje. 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. Adaptéry ovládacích prvků pro daný typ ovládacího prvku a jazyk revizí 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 podnamespace.

Adaptéry ovládacích prvků 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 konkrétní rozhraní. Místo toho by měla tyto údaje 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í OnClick metody. Pak vytvořte nový ovládací prvek odvozený z LinkButton a přepsat metodu OnClick(EventArgs) . Přepsáná OnClick(EventArgs) metoda volá OnClick metodu adaptéru. Objekt adaptéru je k dispozici prostřednictvím chráněné Adapter vlastnosti Control třídy. Adapter Vlastnost ovládacího prvku jenull, když není k dispozici žádný přidružený adaptér, takže před voláním metod adaptéru by měl kód zkontrolovat tuto podmínku.

Konstruktory

Name Description
ControlAdapter()

Inicializuje novou instanci ControlAdapter třídy.

Vlastnosti

Name Description
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 adaptér ovládacího prvku 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

Name Description
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 v prohlížečích 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 vygeneruje koncové značky, které jsou vyžadovány konkrétním cílem, ale nejsou potřeba v prohlížečích HTML.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

(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, kde se nachází ovládací prvek přidružený k tomuto adaptéru ovládacího prvku.

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ří mělkou kopii aktuálního 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 adaptér ovládacího prvku připojen.

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 adaptér ovládacího prvku připojen.

SaveAdapterControlState()

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

SaveAdapterViewState()

Uloží informace o stavu řídicího adaptéru.

ToString()

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

(Zděděno od Object)

Platí pro

Viz také