1.在嵌入式代碼塊中,文法 <% = expression %> 用於解析運算式,並將其值返回到塊中。 Current server time is <% =GetTime()%>.
2.嵌入式代碼塊是在呈現頁面的過程中執行的伺服器代碼。<% for(int i = 0; i < 6; i++) %>
3.所有資料繫結運算式都必須包含在 <%# 和 %> 字元之間。
<asp:label text='<%# StateList.SelectedItem.Text %>' runat="server"/>
集合:<asp:ListBoxid=”List” datasource=’<%# myArray %>’ runat=”server”>
運算式: <%# expression %> 方法結果:<%# GetBalance(custID)%>
將代碼添加到 ASP.NET 網頁中的預設模型要麼建立一個程式碼後置類別檔案(程式碼後置頁),要麼將頁的代碼寫到具有 runat="server" 屬性的 script 塊中(單檔案頁)。編寫的代碼通常會與頁上的控制項進行互動。例如,通過從代碼中設定控制項的 Text(或其他)屬性,可以在頁上顯示資訊。
另一種可能是使用嵌入式代碼塊將代碼直接嵌入到頁中。
嵌入式代碼塊
嵌入式代碼塊是在呈現頁面的過程中執行的伺服器代碼。塊中的代碼可以執行編程語句,並調用當前頁類中的函數。
下面的程式碼範例示範包含嵌入式代碼塊的 ASP.NET 頁,該代碼塊顯示迴圈結果。
<%@ Page Language="C#" %> <html> <body> <form id="form1" runat="server"> <% for(int i = 0; i < 6; i++) %> <% { Response.Write("<br>" + i.ToString()); }%> </form> </body> </html>
下面的程式碼範例示範一個嵌入式代碼塊,該代碼塊顯示 span 元素中的公用 GetTime() 函數的值。在嵌入式代碼塊中,文法 <% = expression %> 用於解析運算式,並將其值返回到塊中。
<%@ Page Language="C#" %> <script runat=server> protected String GetTime() { return DateTime.Now.ToString("t"); } </script> <html> <body> <form id="form1" runat="server"> Current server time is <% =GetTime()%>. </form> </body> </html>
嵌入式代碼塊必須使用頁的預設語言進行編寫。例如,如果頁的 @ Page 指令包含屬性 language="VB",則頁將使用 Visual Basic 編譯器對標有 runat="server" 的所有指令碼塊中的代碼以及 <% %> 分隔字元中的所有內嵌代碼進行編譯。
嵌入式代碼塊的使用
ASP.NET 網頁中支援嵌入式代碼塊,主要用於保留與舊的 ASP 技術的向後相容性。一般情況下,將嵌入式代碼塊用於複雜的編程邏輯並不是最佳做法,因為當頁中的代碼與標記混合時,很難進行調試和維護。此外,由於代碼僅 在呈現頁的過程中執行,因此與將代碼置於適當的頁處理階段以執行後台代碼或指令碼塊代碼相比,其靈活性大大降低。
嵌入式代碼塊的部分用途包括:
•
將控制項元素或標記元素的值設定為函數返回的值,如前面的樣本所示。
•
將計算直接嵌入到標記或控制項屬性中。
還有一種嵌入式代碼就是資料繫結的時候
資料繫結運算式文法
所有資料繫結運算式都必須包含在 <%# 和 %> 字元之間。
ASP.NET 支援分層資料繫結模型,該模型建立伺服器控制項屬性和資料來源之間的綁定。幾乎任何伺服器控制項屬性都可以綁定到任何公用欄位或屬性,這些公用欄位或屬性位於包含頁或伺服器控制項的直接命名容器上。
資料繫結運算式使用 Eval 和 Bind 方法將資料繫結到控制項,並將更改提交回資料庫。Eval 方法是靜態(唯讀)方法,該方法採用資料欄位的值作為參數並將其作為字串返回。Bind 方法支援讀/寫功能,可以檢索資料繫結控制項的值並將任何更改提交回資料庫。
可以使用 XPath 和 XPathSelect 方法以及 XPathBinder 類從 XmlDataSource 控制項綁定到 XML 資料。有關更多資訊,請參見 XmlDataSource Web 伺服器控制項。
<asp:label text='<%# StateList.SelectedItem.Text %>' runat="server"/>
集合:<asp:ListBoxid=”List” datasource=’<%# myArray %>’ runat=”server”>
運算式: <%# expression %>
方法結果:<%# GetBalance(custID)%>
DataBinder.Eval()方法:
Asp.net1.0用法:
<%# DataBinder.Eval(Container.DataItem,”fieldName”,”{0:c}”) %>
DataBinder.Eval參數1-資料項目的命名容器2-資料欄位名3-格式字串
Asp.net2.0用法: <%# Eval(”fieldName”,”{0:c}”) %>
Xml資料來源的綁定 <%# xpath(“fieldName”) %>
<%# XPath("shipaddress/address1") %>
注意:資料繫結的變數如果在cs代碼檔案中定義一定用Public聲明為公有變數,否則無法在綁定運算式中使用.最後一定要在頁面上調用 his.DataBind()使綁定生效