C 中Bind和Eval的區別

2022-02-26 16:32:23 字數 1973 閱讀 6782

資料繫結表示式包含在 <%#

和 %>

分隔符之內,並使用evalbind函式。

eval函式用於定義單向(唯讀)繫結。bind函式用於定義雙向(可更新)繫結。

除了通過在資料繫結表示式中呼叫evalbind方法執行資料繫結外,還可以呼叫 <%#

和 %>

分隔符之內的任何公共範圍**,以在頁面處理過程中執行該**並返回乙個值

eval 方法是靜態(唯讀)方法,該方法採用資料字段的值作為引數並將其作為字串返回。bind 方法支援讀/寫功能,可以檢索資料繫結控制項的值並將任何更改提交回資料庫。eval()方法在執行時使用反射執行後期繫結計算,因此與標準的asp.net資料繫結方法bind相比,會導致效能明顯下降。它一般用在繫結時需要格式化字串的情況下。多數情況盡量少用此方法

eval方法可計算資料繫結控制項(如gridviewdetailsviewformview控制項)的模板中的後期繫結資料表示式。在執行時,eval方法呼叫 databinder 物件的 eval 方法,同時引用命名容器的當前資料項。命名容器通常是包含完整記錄的資料繫結控制項的最小組成部分,如gridview控制項中的一行。因此,只能對資料繫結控制項的模板內的繫結使用eval方法。

eval方法以資料字段的名稱作為引數,從資料來源的當前記錄返回乙個包含該字段值的字串。可以提供第二個引數來指定返回字串的格式,該引數為可選引數。字串格式引數使用為 string類的 format 方法定義的語法。

bind方法與eval方法有一些相似之處,但也存在很大的差異。雖然可以像使用eval方法一樣使用bind方法來檢索資料繫結欄位的值,但當資料可以被修改時,還是要使用bind方法。

在 asp.net 中,資料繫結控制項(如gridviewdetailsviewformview控制項)可自動使用資料來源控制項的更新、刪除和插入操作。例如,如果已為資料來源控制項定義了 sql select、insert、delete 和 update 語句,則通過使用gridviewdetailsviewformview控制項模板中的bind方法,就可以使控制項從模板中的子控制項中提取值,並將這些值傳遞給資料來源控制項。然後資料來源控制項將執行適當的資料庫命令。出於這個原因,在資料繫結控制項的edititemtemplateinsertitemtemplate中要使用bind函式。

bind方法通常與輸入控制項一起使用,例如由編輯模式中的gridview行所呈現的 textbox 控制項。當資料繫結控制項將這些輸入控制項作為自身呈現的一部分建立時,該方法便可提取輸入值。

bind方法採用資料字段的名稱作為引數,從而與繫結屬性關聯

一種情況就是使用 datasource屬性(而非datasourceid屬性)將某個控制項繫結到資料來源控制項時。在這種情況下,需要顯式呼叫databind方法,從而執行資料繫結和解析資料繫結表示式。

另一種情況就是需要手動重新整理資料繫結控制項中的資料時。

bind和eval的區別

eval 方法 在執行時使用反射執行後期繫結計算,因此與標準的asp.net資料繫結方法bind相比,會導致效能明顯下降。它一般用在繫結時需要格式化字串的情況下。多數情況盡量少用此方法 eval 方法是靜態 唯讀 方法,該方法採用資料字段的值作為引數並將其作為字串返回。bind 方法支援讀 寫功能,...

Bind和Eval的區別詳解

bind和eval的區別詳解 1.簡單描述eval和bind的區別 繫結表示式 eval 欄位名 bind 欄位名 區別 1.eval是唯讀資料,bind是可更新的 2.當對次表示式操作時候,必須用eval 如 eval 欄位名 tostring trim 2.若gridview中繫結列裡面 設定 ...

Eval方法和Bind方法的區別?

eval方法和bind方法的區別?eval是唯讀的方法 單向資料繫結 所繫結的內容為不會提交回伺服器。比如圖書的isbn,並不想讓使用者做任何修改,可以使用 eval isbn tostring trim eval還有乙個過載的方法,可以實現格式化。比如需要顯示圖書的出版日期,可以使用 eval p...