2015年6月16日 星期二

asp.net中Bind和Eval的有什麼區別

TemplateField模組中Bind和Eval的有什麼區別
eval()方法在運行時使用反射執行後期綁定計算,因此與標準的ASP.NET數據綁定方法bind相比,會導致性能明顯下降。它一般用在綁定時需要格式化字符串的情況下。多數情況盡量少用此方法
 
 
  Eval 方法是靜態(只讀)方法,該方法採用數據字段的值作為參數並將其作為字符串返回。 Bind 方法支持讀/寫功能,可以檢索數據綁定控件的值並將任何更改提交回數據庫。
 
  使用 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 控件。當數據綁定控件將這些輸入控件作為自身呈現的一部分創建時,該方法便可提取輸入值。

沒有留言:

張貼留言