天天看點

DataBinder.Eval資料綁定中的使用

DataBinder.Eval (Object, String) 在運作時計算資料綁定表達式。
DataBinder.Eval (Object, String, String) 在運作時計算資料綁定表達式,并将結果格式化為要在請求浏覽器中顯示的文本。

使用資料綁定文法,可以将控件屬性值綁定到資料,并指定值以對資料進行檢索、更新、删除和插入操作。

資料綁定文法

資料綁定表達式包含在 <%# 和 %> 分隔符之内,并使用 Eval 和 Bind 函數。Eval 函數用于定義單向(隻讀)綁定。Bind 函數用于定義雙向(可更新)綁定。除了通過在資料綁定表達式中調用 Eval 和 Bind 方法執行資料綁定外,還可以調用 <%# 和 %> 分隔符之内的任何公共範圍代碼,以在頁面處理過程中執行該代碼并傳回一個值。

調用控件或 Page 類的 DataBind 方法時,會對資料綁定表達式進行解析。對于有些控件,如 GridView、DetailsView 和 FormView 控件,會在控件的 PreRender 事件期間自動解析資料綁定表達式,不需要顯式調用 DataBind 方法。

使用 Eval 方法

Eval 方法可計算資料綁定控件(如 GridView、DetailsView 和 FormView 控件)的模闆中的後期綁定資料表達式。在運作時,Eval 方法調用 DataBinder 對象的 Eval 方法,同時引用命名容器的目前資料項。命名容器通常是包含完整記錄的資料綁定控件的最小組成部分,如 GridView 控件中的一行。是以,隻能對資料綁定控件的模闆内的綁定使用 Eval 方法。

Eval 方法以資料字段的名稱作為參數,從資料源的目前記錄傳回一個包含該字段值的字元串。可以提供第二個參數來指定傳回字元串的格式,該參數為可選參數。字元串格式參數使用為 String 類的 Format 方法定義的文法。

使用 Bind 方法

Bind 方法與 Eval 方法有一些相似之處,但也存在很大的差異。雖然可以像使用 Eval 方法一樣使用 Bind 方法來檢索資料綁定字段的值,但當資料可以被修改時,還是要使用 Bind 方法。

在 ASP.NET 中,資料綁定控件(如 GridView、DetailsView 和 FormView 控件)可自動使用資料源控件的更新、删除和插入操作。例如,如果已為資料源控件定義了 SQL Select、Insert、Delete 和 Update 語句,則通過使用 GridView、DetailsView 或 FormView 控件模闆中的 Bind 方法,就可以使控件從模闆中的子控件中提取值,并将這些值傳遞給資料源控件。然後資料源控件将執行适當的資料庫指令。出于這個原因,在資料綁定控件的 EditItemTemplate 或 InsertItemTemplate 中要使用 Bind 函數。

Bind 方法通常與輸入控件一起使用,例如由編輯模式中的 GridView 行所呈現的 TextBox 控件。當資料綁定控件将這些輸入控件作為自身呈現的一部分建立時,該方法便可提取輸入值。

事例:

//顯示二位小數

//<%# DataBinder.Eval(Container.DataItem, "UnitPrice", "${0:F2}") %>

//{0:G}代表顯示True或False

//<ItemTemplate>

// <asp:Image Width="12" Height="12" Border="0" runat="server"

// AlternateText='<%# DataBinder.Eval(Container.DataItem, "Discontinued", "{0:G}") %>'

// ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Discontinued", "~/images/{0:G}.gif") %>' />

// </ItemTemplate>

//轉換類型

((string)DataBinder.Eval(Container, "DataItem.P_SHIP_TIME_SBM8")).Substring(4,4)

{0:d} 日期隻顯示年月日

{0:yyyy-mm-dd} 按格式顯示年月日

{0:c} 貨币樣式