Nejčtenější

EZP - Elektronický Zářivkový Předřadník

Indukční ohřev

DIM2151 - PWM stmívač s IR2151

Vlastní WebControl

Důvodů proč psát vlastní WebControl může být hodně. Pro mě je jeden z nejdůležitějších ten, že při použití standardních WebControlů nemám pod svou kontrolou co vlastně dělají. A tak se občas stane, že klientská stránka má zbytečně moc kB, protože "standardní" WebControl tahá velký a zbytečný ViewState ke klientovi. A tak podle hesla: "Co si sám neuděláš, to nemáš" jsem nucen přistoupit k tvorbě vlastních WebConrolů.

Zjednodušeně řečeno vlastní WebControl musí splňovat dvě hlavní podmínky:
  • Dědění z předka WebControl
  • Implementace metody Render
Mějte na paměti, že uvádím pouze jednoduchý příklad. Samozřejmě, že psát takový WebControl jako je zde uveden nemá žádný velký smysl.

Vlastní WebControl

Ve výše uvedeném kódu je vidět jak WebControl vytvořit.
  • 1. Import nutných namespaců
  • 2. Definice třídy s děděním z WebControl
  • 3. Implementace metody Render
Kromě výše uvedených nutností obsahuje třída Nadpis privátní proměnnou string nadpis, kde je uchován text pro zobrazení. Dále je definována vlastnost string Text, přes kterou je umožněn přístup k proměnné nadpis.

V implementaci metody Render vlastně vytváříme kompletní HTML kód, který bude vložen do výsledné odpovědi a zaslán klientovi (internetovému prohlížeči).
Za zmínku ještě stojí renderování vlastnosti ID a CssClass. Tyto jsou definovány už na předkovi WebControl.

Nyní se podívejme jak vlastní WebControl použít ve své stránce.

Nejprve musíme v záhláví stránky zaregistrovat namespace, kde je náš kód uložen:
Vlastní WebControl

Poté už můžeme náš Control Nadpis používat ve zdrojovém kódu:
Vlastní WebControl

Samozřejmě toto použití je v celku nesmyslné, ale WebControl nám umožní přístup k property Text i v kódu stránky. Tak můžeme např. v metodě Page_Load dynamicky měnit obsah textu. To je také smyslem WebControlů.

Na závěr ještě uvádím výsledný kód v HTML stránce, tedy to co vyrenderovala metoda Render:
Autor: Choze [2011-06-06]   Přečteno: 1656x

Novinky

ALCD - Proudový zdroj pro LD

VUtiny44 - AVR VU metr

HotWire - Řezačka polystyrenu

ASTRE85 - PWM antistres do akvária

Kontakt
192391