ASP.NET QuickStart Príručka
Web Forms Syntax
ASP.NET Web Forms stránka je deklaratívny textovy súbor s príponou .aspx. Okrem statického obsahu, môžete používať osem zvláštnych syntaktických značkových elementov. Táto časť QuickStart-u popisuje každý z týchto syntaktických elementov a poskytuje príklady, ktoré demonštrujú ich použitie.
Renderovanie kódovej syntaxe: <% %> a <%= %>
Časti kódu na renderovanie blokov sú označené <% ... %> elementami, a dovolia vám skontrolovať obsah výstupu a sú vykonané počas renderovania stránky. Nasledujci príklad demonštruje, ako ich môžete využiť na vypísanie obsahu do HTML.
<% For I=0 To 7 %>
<font size="<%=i%>"> Hello World! </font> <br>
<% Next %>
VB
VB Reference1.aspx
Kód uzavretý do <% ... %> je práve spustený, keď sú výrazy, ktoré obsahujú znamienko rovnosti, ohodnotené a výsledok je odoslaný na výstup. Preto <%="Hello World" %> vyrenderuje to isté ako kód v C# <% Response.Write("Hello World"); %>.
Poznámka:
Pre jazyky, v ktorých sa používajú značky na ukončenie alebo oddelenie príkazov (napríklad bodkočiarka (;) v C#), je dôležité umiestniť ich správne podľa toho, ako by mal byť Váš kód vyrenderovaný.
| C# code |
<% Response.Write("Hello World"); %> |
Príkaz je nevyhnutné ukončiť bodkočiarkou. |
<%="Hello World"; %> |
Nesprávne: Výsledok bude "Response.Write("Hello World";);". |
<%="Hello World" %> | Bodkočiarka nie je potrebná. |
Deklarácia kódovej syntaxe: <script runat="server">
Časti kódu na renderovanie blokov definujú členské premenné a metódy, ktoré môžu byť generované do vygenerovanej triedy Page. Tieto bloky môžu byť použité pre autorskú stránku alebo navigačnú logiku logiky. Nasledujúci príklad demonštruje, ako môže byť metóda Subtract deklarovaná v rámci bloku <script runat="server"> a potom vyvolaná stránkou.
<script language="VB" runat=server>
Function Subtract(num1 As Integer, num2 As Integer) As Integer
Return(num1 - num2)
End Function
</script>
<%
...
number = subtract(number, 1)
...
%>
VB
VB Reference2.aspx
Dôležité:
Na rozidel od ASP, kde mohli byť funkcie deklarované v rámci blokov <% %>, všetky funkcie a premenné globálnej stránky musia byť deklarované v tagu <script runat=server>. Funkcie deklarované v rámci bloku <% %> budú teraz generovať syntaktickú chybu (syntax compile error).
Syntax serverových ovládacích prvkov
Vlastné ASP.NET serverové ovládacie prvky umožňujú vývojárom dynamicky generovať HTML používateľské rozhranie (UI) a reagovať na žiadosti klienta. Sú reprezentované súborom, pričom používajú deklaratívnu syntax, založenú na tagu. Tieto tagy sú odlišné od ostatných tagov, pretože obsahujú atribút "runat=server". Nasledujúci príklad demonštruje, ako môže byť použitý serverový ovládací prvok <asp:label runat="server"> v rámci ASP.NET stránky. Tento ovládací prvok korešponduje s triedou Label v mennom priestore System.Web.UI.WebControls, ktorý je štandardne dodávaný.
Pridaním tagu s ID "Message" je instancia Label vytvorená v priebehu programu:
<asp:label id="Message" font-size=24 runat="server"/>
Ovládací prvok môže byť potom prístupný použitím tohoto mena. Nasledujúci riadok nastavuje vlastnosť Text ovládacieho prvku.
Message.Text = "Welcome to ASP.NET"
VB
VB Reference3.aspx
Syntax serverových HTML ovládacích prvkov
Serverové HTML ovládacie prvky umožňujú vývojárovi stránky programovo manipulovať s HTML elementami na stránke. HTML tag serverového ovládacieho prvku je odlišný od HTML elementov klienta, a to prostredníctvom atribútu "runat=server". Nasledúci príklad demoštruje ako serverový ovládací prvok HTML <span runat=server> môže byť použitý na ASP.NET stránke.
Ako aj pri ostatných serverových ovládacích prvkoch, metódy a vlastnosti sú prístupné programovo, ako ukazuje nasledujúci príklad.
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Message.InnerHtml = "Welcome to ASP.NET"
End Sub
</script>
...
<span id="Message" style="font-size:24" runat="server"/>
VB
VB Reference4.aspx
Syntax pripájania na dáta: <%# %>
Podpora viazania dát zabudovaná do ASP.NET umožňuje vývojárom hierarchicky viazať vlastnosti na hodnoty dátového kontajnera. Kód nachádzajúci sa vnútri bloku <%# %> je spúšťaný len vtedy, ked je vyvolaná metóda DataBind kontajnera jeho rodičovského ovládacieho prvku.
V ovládacom prvku DataList je špecifikovaná jedna šablóna pre jednu položku. Obsah šablóny položky je špecifikovaný výrazom na pripojenie dát a Container.DataItem odkazuje na zdroj dát, ktorý používa DataList MyList.
<asp:datalist id="MyList" runat=server>
<ItemTemplate>
Here is a value: <%# Container.DataItem %>
</ItemTemplate>
</asp:datalist>
V tomto prípade je zdroj dát MyList-u daný programovo. Potom je nutné zavolať metódu DataBind().
Sub Page_Load(sender As Object, e As EventArgs)
Dim items As New ArrayList()
items.Add("One")
items.Add("Two")
items.Add("Three")
MyList.DataSource = items
MyList.DataBind()
End Sub
VB
Volanie metódy DataBind ovládacieho prvku spôsobuje rekurzívny prechod stromu ovládacích prvkov z tohoto ovládacieho prvku až po jeho koniec. Udalosť DataBinding je vyvolaná na každom serverovom ovládacom prvku v tejto hierarchii. Takže keď je zavolaná metóda DataBind, vyhodnotia sa tiež všetky výrazy viažuce dáta na stránke.
VB Reference5.aspx
ASP.NET 2.0 obsahuje tiež novú zjednodušenú syntax na pripojenie k dátam, ktorá umožňuje ovládacím prvkom, aby automaticky viazali dáta do ovládacích prvkov zdroja dát bez toho, aby vás žiadali o vyvolanie DataBindu-u() v kóde stránky. Táto syntax sa preberá v sekcii Vykonanie prístupu k dátam.
Syntax tagu Object: <object runat="server" />
Tagy object uľahčujú vývojárom deklarovať a vytvárať instancie premenných, pričom používajú deklaratívnu syntax viažucu dáta. Nasledujúci príklad demoštruje ako môžu byť objektové tagy použité na vytvorenie instancie triedy ArrayList.
<object id="items" class="System.Collections.ArrayList" runat="server"/>
Objekt bude vytvorený automaticky počas behu programu a môže byť sprístupnený cez "položku" ID.
Sub Page_Load(sender As Object, e As EventArgs)
items.Add("One")
items.Add("Two")
items.Add("Three")
...
End Sub
VB
VB Reference6.aspx
Syntax komentárov na strane servera: <%-- Comment --%>
Komentáre na strane servera umožňujú vývojárom zamedziť serverovského kódu (včítane serverových ovládacích prvkov) a statickému obsahu, aby bol spustený a zrenderovaný. Nasledujúci príklad demoštruje, ako sa môže blokovať obsah pred tým, aby bol spustený a posladný klientovi. Všimnite si, že všetko medzi <%-- a --%> je vyfiltrované a je viditeľné len v originálnom serverovom súbore, dokonca aj keď obsahuje iné ASP.NET direktívy.
<%--
<asp:calendar id="MyCal" runat=server/>
<% For I=0 To 44 %>
Hello World <br>
<% Next %>
--%>
VB
VB Reference7.aspx
Syntax vkládania súborov zo servera: <-- #Include File="Locaton.inc" -->
Serverová direktíva #Includes umožňuje vývojárom vložiť nespracovaný obsah špecifického súboru hocikam na stránku v ASP.NET. Nasledujúci príklad demoštruje, ako vložiť vlastné záhlavie a pätu do stránky.
<!-- #Include File="Header.inc" -->
...
<!-- #Include File="Footer.inc" -->
VB Reference8.aspx
Syntax vyhodnocovania výrazov: <%$ ... %> nové v 2.0
ASP.NET 2.0 pridáva novú deklaratívnu syntax na nahradenie hodnôt v stránke pred tým ako je stránka parsovaná. To je užitočné na nahradenie hodnôt reťazca pripojenia (connection string) alebo natavení definovaných v súbore Web.config pre hodnoty vlastností serverových ovládacích prvkov.
Túto vlastnosť môžeme tiež využiť na nahradenie hodnôt zo zdrojového súboru pre lokalizáciu. Viac ako jeden reťazec pripojenia a výrazy zo zdrojov môžete nájsť v sekciách Vykonanie prístupu k dátam, and Extending ASP.NET.
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString='<%$ connectionStrings:Pubs %>' runat="server" SelectCommand="sp_GetAuthors" />
<asp:Label ID="Label1" Text='<%$ Resources: ExchRate, ConvertLabel %>' runat="server"/>
|