ASP.NET 2.0改善了模板中的數(shù)據(jù)綁定操作,把v1.x中的數(shù)據(jù)綁定語(yǔ)法DataBinder.Eval(Container.DataItem, fieldname)簡(jiǎn)化為Eval(fieldname)。Eval方法與DataBinder.Eval一樣可以接受一個(gè)可選的格式化字符串參數(shù)。縮短的Eval語(yǔ)法與DataBinder.Eval的不同點(diǎn)在于,Eval會(huì)根據(jù)最近的容器對(duì)象(例如DataListItem)的DataItem屬性來(lái)自動(dòng)地解析字段,而DataBinder.Eval需要使用參數(shù)來(lái)指定容器。由于這個(gè)原因,Eval只能在數(shù)據(jù)綁定控件的模板中使用,而不能用于 Page(頁(yè)面)層。當(dāng)然,ASP.NET 2.0頁(yè)面中仍然支持DataBinder.Eval,你可以在不支持簡(jiǎn)化的Eval語(yǔ)法的環(huán)境中使用它。
Eval:綁定的是只讀數(shù)據(jù)的顯示;Bind:可以綁定只讀數(shù)據(jù)也可以綁定更新數(shù)據(jù),Bind方法還把字段和控件的綁定屬性聯(lián)系起來(lái),使得數(shù)據(jù)控件(比如GridView等)的Update、Insert和Delete等方法可以使用這種聯(lián)系來(lái)作出相應(yīng)的處理。
%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
%# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %>
%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-MM-dd}")%>
%# Bind("AddinTime", "{0:yyyy-mm-dd}") %>
1, 對(duì)顯示的字符串作字符顯示:%# (Eval("Address")).ToString().SubString(0,10)%>,顯示10位數(shù)的地址。