AspNet.sk     Diskusné fóra     Vitajte v QuickStarts     ASP.NET     Silverlight     Ako môžem...? (en)     Class prehliadač Príklady chcem v ...   
Menu
Skip Navigation Links.
Späť na ASP.NET príručku

ASP.NET QuickStart Príručka

Dátové viazanie v šablónach

Šablónované (templated) dátovo-viazané ovládacie prvky poskytujú úplnú flexibilitu pri renderovaní dát na stránkach. Môžete si spomenúť na niekoľko šablónovaných prvkov z ASP.NET v1.x, ako napríklad DataList, alebo Repeater. Spomínané prvky zostávajú podporované v ASP.NET 2.0, avšak spôsob, ako sa viažu na dáta v šablónach sa značne zjednodušil a vylepšil v novom vydaní. Sekcia opisuje rôzne spôsoby dátového viazania v dátovo-viazanej šablóne prvku.

Výrazy dátového viazania

ASP.NET 2.0 pridáva vylepšenia dátového viazania v šablónach, zjednodušením väzobnej syntaxe z úplnej v1.x syntaxe DataBinder.Eval(Container.DataItem, fieldname) len na Evalfieldname. Podobne, ako DataBinder.Eval, metóda Eval akceptuje voliteľný parameter obsahujúci formátovací reťazec. Skrátená Eval syntax je odlišná od DataBinder.Eval v tom, že Eval automaticky analyzuje pole oproti vlastnosti DataItem najbližšieho kontajnerového objektu (DataListItem, v príkladoch vyššie), kde DataBinder.Eval preberá kontajner v argumente. Z tohto dôvodu sa Eval používa vo vnútri šablóny ovládacieho prvku a nemôže byť použitý na úrovni stránky. Samozrejme, DataBinder.Eval zostava podporovaný v ASP.NET 2.0, takže ho môžete používať v scenároch, kde zjednodušená Eval syntax nie je podporovaná.
<asp:DataList DataSourceID="ObjectDataSource1" runat="server">
  <ItemTemplate>
    <asp:Image ImageUrl='<%# Eval("FileName", "images/thumbs/{0}") %>' runat="server"/>
    <asp:Label Text='<%# Eval("Caption") %>' runat="server"/>
  </ItemTemplate>
</asp:DataList>
Príklad nižšie ukazuje novú zjednodušenú Eval syntax pre dátové viazanie prvkov Image, Label a HyperLing v ItemTemplate v rámci DataList.

VB DataBinding in a DataList Template
Run Sample View Source

Dátové viazania môžu byť zahrnuté ako súčasť definície témy pre ovládací prvok, takže je možné dramaticky zmeniť rozvrhnutie a look-and-feel šablónovaného ovládacieho prvku jednoducho zmenou aplikovanej témy (Theme). Len Eval (alebo Bind, ako bude uvedené neskôr) môže byť použitý v šablóne témy. Svojvoľné viazanie na používateľský kód je zakázané. Nasledujúci príklad ukazuje tému aplikovanú na predchádzajúci príklad na vytvorenie úplne iného vzhľadu pre stránku. Viac informácii o témach sa dozviete v sekcii Aplikovanie štýlov, tém a skinov návodu.

VB DataBinding in a DataList Template (Themed)
Run Sample View Source

Ovládací prvok FormView

Prvok Datalist iteruje cez všetky dátové prvky poskytnuté dátovým zdrojom a používa ItemTeplate pre výstup každého prvku. Prístup je výhodný pri renderovaní zoznamu prvkov, keď sa často nechcete dátovo-viazať oproti jedinému dátovému prvku vo forme. Z tohto dôvodu, ASP.NET 2.0 uvádza prvok FormView, ktorý renderuje jedinú dátovú položku v šablóne s voľným umiestnením. Hlavný rozdiel medzi DetailsView a FormView je, že DetailsView má zabudované tabuľkové zobrazovanie, kým FormView vyžaduje používateľský-definovanú šablónu na zobrazovanie. Napriek spomenutým rozdielom sú si FormView a DetailsView z pohľadu objektového module veľmi podobné. Nasledujúci príklad ukazuje prvok FormView viazaný na ObjectDataSource. Vlastnosť ItemTemplate prvku FormView obsahuje dátovo-viazané prvky Image, Label a Hyperlink podobne ako v predchádzajúcom príklade na DataList.

VB DataBinding in a FormView Template
Run Sample View Source

Podobne ako DetailsView, FormView má prehľad o aktuálne zobrazenom prvku a môže voliteľne podporovať stránkovanie cez dátové položky, keď dátový zdroj vráti zoznam. Nasledujúci príklad ukazuje FormView s aktivovaným stránkovaním.

VB DataBinding in a FormView Template (Paged)
Run Sample View Source

Two-way Databinding

FormView podporuje automatickú editáciu, vkladanie a vymazávanie prostredníctvom asociovaného prvku dátového zdroja podobne ako DetailsView. Aby ste aktivovali používateľské rozhranie pre editáciu alebo vkladanie, definujte EditItemTemplate alebo InsertItemTemplate dodatočne spolu s ItemTemplate (ktorú musíte pripraviť vždy). V tejto šablóne sa viažu dátovo-viazané ovládacie prvky ako TextBox, CheckBox alebo DropDownList na polia dátového zdroja. Dátové viazania v šablónach používajú dvojsmernú (Two way) väzobnú syntax, aby sa dalo extrahovať hodnoty zo vstupných ovládacích prvkov zo šablóny, ktoré budú ďalej odovzdané dátovému zdroju. Dátové viazania používajú novú syntax Bind(fieldname) namiesto Eval.

Dôležité: Ovládací prvok, ktorý je dátovo-viazaný prostredníctvom Bind syntaxe musí mať správne nastavenú hodnotu vlastnosti ID.

<asp:FormView DataSourceID="ObjectDataSource1" DataKeyNames="PhotoID" runat="server">
  <EditItemTemplate>
    <asp:TextBox ID="CaptionTextBox" Text='<%# Bind("Caption") %>' runat="server"/>
    <asp:Button Text="Update" CommandName="Update" runat="server"/>
    <asp:Button Text="Cancel" CommandName="Cancel" runat="server"/>
  </EditItemTemplate>
  <ItemTemplate>
    <asp:Label Text='<%# Eval("Caption") %>' runat="server" />
    <asp:Button Text="Edit" CommandName="Edit" runat="server"/>
  </ItemTemplate>
</asp:FormView>
Keď editujete alebo vkladáte prostredníctvom GridView alebo DetailsView, kde sú BoundFields definované pre stĺpce alebo polia v rámci prvku, zodpovedá GridView alebo DetailsView za vytváranie vstupného rozhrania pre režim Edit alebo Insert, aby dokázal automaticky extrahovať vstupné hodnoty, ktoré sa odovzdajú späť dátovému zdroju. Pretože šablóny obsahujú vlastné používateľsky-definované prvky, dvojsmerná dátovo-väzobná syntax je potrebná na podporu šablónových ovládacích prvkov ako FormView, aby bolo zrejmé, ktoré hodnoty majú byť extrahované zo šablóny pre operácie Update, Insert alebo Delete. Stále môžete používať Eval syntax v EditItemTemplate pre dátové viazanie, kde hodnoty nemajú byť odovzdané späť dátovému zdroju. Všimnite si tiež, že FormView podporuje vlastnosť DataKeyNames podobne ako DetailsView a GridView pre udržovanie originálnych hodnôt polí primárneho kľúča, ktoré sa odovzdávajú počas operácií Update resp. Delete, aj keď im zodpovedajúce polia nie sú zobrazené.

FormView podporuje vlastnosť DefaultMode pre špecifikáciu štandardnej zobrazovacej šablóny, ale bežne FormView štartuje v režime ReadOnly a zobrazuje ItemTemplate. Aby ste zobrazili rozhranie pre prechod z režimu ReadOnly do režimov Edit a Insert, môžete pridať prvok Button do šablóny a nastaviť jeho vlastnosť CommandName na Update alebo New. Z vnútra EditItemTemplate, môžete na prijatie alebo odvolanie operácie Update pridávať tlačidlá s vlastnosťou CommandName nastavenou na Update alebo Cancel. Podobne môžete pridávať tlačidlá s CommandName nastaveným na Insert alebo Cancel na prijatie alebo odmietnutie operácie Insert.

Nasledujúci príklad ukazuje FormView s definovanými šablónami ItemTemplate a EditItemTemplate. Kým ItemTemplate obsahuje ovládacie prvky viazané s pomocou syntaxe Eval (jednosmernej syntaxe viazania), EditItemTemplate obsahuje prvok TextBox viazaný dvojsmerne pomocou väzobného príkazu (bind statement). Pole primárneho kľúča (PhotoID) sa používa pri všetkých pohľadoch s použitím vlastnosti DataKeyNames. FormView obsahuje tlačidlá pre príkazy na prepínanie medzi šablónami.

VB Two-Way Databinding in a FormView Edit Template
Run Sample View Source

GridView a DetailsView tiež podporujú šablónované rozhranie použitím objektu TemplateField vloženého do kolekcie Columns alebo Fields. TemplateField podporuje ItemTemplate, EditItemTemplate a InsertItemTemplate (len pri DetailsView) pre špecifikáciu používateľského rozhrania v rôznych zobrazovacích režimoch ovládacích prvkov. Podobne ako v predchádzajúcom príklade, dvojsmerné dátové viazania v EditItemTemplate alebo InsertItemTemplate umožnia GridView alebo DetailsView získať hodnoty z ovládacích prvkov v šablónach. Bežné použitie pre TemplateField je, ak potrebujete pridať validačné prvky (validátory) do EditItemTemplate pre deklaratívnu validáciu GridView alebo DetailsView. Príklad nižšie ukazuje príklad spomínanej techniky. Viac informácií o validačných ovládacích prvkov v ASP.NET sa nachádza v sekcii Validácia vstupných ovládacích prvkov návodu.

VB Validation in a GridView Edit Template
Run Sample View Source

TemplateField sa používa aj na nastavenie vzhľadu vstupných ovládacích prvkov použitých na vkladanie hodnôt údajov v GridView, alebo DetailsView. Môžete na príklad umiestniť prvok DropDownList do šablóny EditItemTemplate objektu TemplateField aby ste umožnili výber zo zoznamu hodnôt. Príklad nižšie ukazuje túto techniku. Všimnite si, že DropDownList v príklade je viazaný na vlastný prvok dátového zdroja na dynamické získanie hodnôt zoznamu.

VB DropDownList in a GridView Edit Template
Run Sample View Source
Microsoft .NET Framework SDK QuickStart Tutorials Version 2.0
Copyright © 2005 Microsoft Corporation. All rights reserved.
Preklad do slovenského jazyka - Copyright © 2005 - 2007 www.aspnet.sk, www.qsh.sk
Pošlite komentár k tejto stránke
Copyright © 2002 - 2008 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.