程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 淺析DataBinder.Eval和Eval的區別

淺析DataBinder.Eval和Eval的區別

編輯:ASP.NET基礎

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" ?"已刪除":"未刪除"%>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved