ASP.NET 2.0改善了模板中的數據綁定操作,把v1.x中的數據綁定語法DataBinder.Eval(Container.DataItem, fieldname)簡化為Eval(fieldname)。Eval方法與DataBinder.Eval一樣可以接受一個可選的格式化字符串參數。縮短的Eval語法與DataBinder.Eval的不同點在於,Eval會根據最近的容器對象(例如DataListItem)的DataItem屬性來自動地解析字段,而DataBinder.Eval需要使用參數來指定容器。由於這個原因,Eval只能在數據綁定控件的模板中使用,而不能用於 Page(頁面)層。當然,ASP.NET 2.0頁面中仍然支持DataBinder.Eval,你可以在不支持簡化的Eval語法的環境中使用它。
Eval:綁定的是只讀數據的顯示;Bind:可以綁定只讀數據也可以綁定更新數據,Bind方法還把字段和控件的綁定屬性聯系起來,使得數據控件(比如GridView等)的Update、Insert和Delete等方法可以使用這種聯系來作出相應的處理。
Asp.net中DataBinder.Eval用法的總結
復制代碼 代碼如下:
<%# Bind("Subject") %> //綁定字段
<%# Container.DataItemIndex + 1%> //實現自動編號
通常使用的方法
復制代碼 代碼如下:
<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
<%# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %>
取兩位小數
復制代碼 代碼如下:
<%# DataBinder.Eval(Container.DataItem, "UnitPrice", "{0:F2}") %>
時間格式化
復制代碼 代碼如下:
<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-MM-dd}")%>
<%# Bind("AddinTime", "{0:yyyy-mm-dd}") %>
Eval 和 Bind綁定的數據在<%# %> 顯示, 若對要顯示的數據作修改或者操作也在<%# %> 中,例如:
1, 對顯示的字符串作字符顯示:<%# (Eval("Address")).ToString().SubString(0,10)%>,顯示10位數的地址。
2, 對顯示的信息作判斷:<%# (Eval("if_delete")).ToString == "yes" ?"已刪除":"未刪除"%>