自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET中Bind和Eval的區(qū)別:兩種綁定

開發(fā) 后端
本文詳細說明了asp.net中Bind和Eval兩者之間的區(qū)別。eval()方法在運行時使用反射執(zhí)行后期綁定計算,因此與標準的asp.net數(shù)據綁定方法bind相比,會導致性能明顯下降。

eval()方法在運行時使用反射執(zhí)行后期綁定計算,因此與標準的asp.net數(shù)據綁定方法bind相比,會導致性能明顯下降。它一般用在綁定時需要格式化字符串的情況下。多數(shù)情況盡量少用此方法  

Eval 方法是靜態(tài)(只讀)方法,該方法采用數(shù)據字段的值作為參數(shù)并將其作為字符串返回。Bind 方法支持讀/寫功能,可以檢索數(shù)據綁定控件的值并將任何更改提交回數(shù)據庫。  

asp.net中的Bind和Eval:使用 Eval 方法

Eval 方法可計算數(shù)據綁定控件(如 GridView、DetailsView 和 FormView 控件)的模板中的后期綁定數(shù)據表達式。在運行時,Eval 方法調用 DataBinder 對象的 Eval 方法,同時引用命名容器的當前數(shù)據項。命名容器通常是包含完整記錄的數(shù)據綁定控件的最小組成部分,如 GridView 控件中的一行。因此,只能對數(shù)據綁定控件的模板內的綁定使用 Eval 方法。  

Eval 方法以數(shù)據字段的名稱作為參數(shù),從數(shù)據源的當前記錄返回一個包含該字段值的字符串??梢蕴峁┑诙€參數(shù)來指定返回字符串的格式,該參數(shù)為可選參數(shù)。字符串格式參數(shù)使用為 String 類的 Format 方法定義的語法。   

asp.net中的Bind和Eval:使用 Bind 方法

Bind 方法與 Eval 方法有一些相似之處,但也存在很大的差異。雖然可以像使用 Eval 方法一樣使用 Bind 方法來檢索數(shù)據綁定字段的值,但當數(shù)據可以被修改時,還是要使用 Bind 方法。   

在 asp.net 中,數(shù)據綁定控件(如 GridView、DetailsView 和 FormView 控件)可自動使用數(shù)據源控件的更新、刪除和插入操作。例如,如果已為數(shù)據源控件定義了 SQL Select、Insert、Delete 和 Update 語句,則通過使用 GridView、DetailsView 或 FormView 控件模板中的 Bind 方法,就可以使控件從模板中的子控件中提取值,并將這些值傳遞給數(shù)據源控件。然后數(shù)據源控件將執(zhí)行適當?shù)臄?shù)據庫命令。出于這個原因,在數(shù)據綁定控件的 EditItemTemplate 或 InsertItemTemplate 中要使用 Bind 函數(shù)。   

Bind 方法通常與輸入控件一起使用,例如由編輯模式中的 GridView 行所呈現(xiàn)的 TextBox 控件。當數(shù)據綁定控件將這些輸入控件作為自身呈現(xiàn)的一部分創(chuàng)建時,該方法便可提取輸入值。    

Bind 方法采用數(shù)據字段的名稱作為參數(shù),從而與綁定屬性關聯(lián),如下面的示例所示:  

  1. < EditItemTemplate>   
  2.    < table>   
  3.    < tr>   
  4.    < td align=right>   
  5.    < b>Employee ID:< /b>   
  6.    < /td>   
  7.    < td>   
  8.    < %# Eval("EmployeeID") %>   
  9.    < /td>   
  10.    < /tr>   
  11.    < tr>   
  12.    < td align=right>   
  13.    < b>First Name:< /b>   
  14.    < /td>   
  15.    < td>   
  16.    < asp:TextBox ID="EditFirstNameTextBox" RunAt="Server"   
  17.    Text='< %# Bind("FirstName") %>' />   
  18.    < /td>   
  19.    < /tr>   
  20.    < tr>   
  21.    < td align=right>   
  22.    < b>Last Name:< /b>   
  23.    < /td>   
  24.    < td>   
  25.    < asp:TextBox ID="EditLastNameTextBox" RunAt="Server"   
  26.    Text='< %# Bind("LastName") %>' />   
  27.    < /td>   
  28.    < /tr>   
  29.    < tr>   
  30.    < td colspan="2">   
  31.    < asp:LinkButton ID="UpdateButton" RunAt="server"   
  32.    Text="Update" CommandName="Update" />   
  33.      
  34.    < asp:LinkButton ID="CancelUpdateButton" RunAt="server"   
  35.    Text="Cancel" CommandName="Cancel" />   
  36.    < /td>   
  37.    < /tr>   
  38.    < /table>   
  39.    < /EditItemTemplate>   

單擊行的 Update 按鈕時,使用 Bind 語法綁定的每個控件屬性值都會被提取出來,并傳遞給數(shù)據源控件以執(zhí)行更新操作。

asp.net中的Bind和Eval:使用 DataBinder.Eval

asp.net 提供了一個名為 DataBinder.Eval 的靜態(tài)方法,該方法計算后期綁定的數(shù)據綁定表達式,并將結果格式化為字符串(可選)。利用此方法,可以避免許多在將值強制為所需數(shù)據類型時必須執(zhí)行的顯式強制轉換操作。   

例如,在下面的代碼片段中,一個整數(shù)顯示為貨幣字符串。使用標準的 asp.net 數(shù)據綁定語法,必須首先強制轉換數(shù)據行的類型以便檢索數(shù)據字段 IntegerValue。然后,這將作為參數(shù)傳遞到 String.Format 方法:   

  1. < %# String.Format("{0:c}", ((DataRowView)Container.DataItem)["IntegerValue"]) %>   

將此語法與 DataBinder.Eval 的語法進行比較,后者只有三個參數(shù):數(shù)據項的命名容器、數(shù)據字段名稱和格式字符串。在模板化列表中(如 DataList 類、DataGrid 類或 Repeater 類),命名容器始終是 Container.DataItem。    

  1. < %# DataBinder.Eval(Container.DataItem, "IntegerValue""{0:c}") %>  

格式字符串參數(shù)是可選的。如果它被忽略,DataBinder.Eval 將返回類型對象的值,如下面的示例所示:      

  1. < %# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %>     

當對模板化列表中的控件進行數(shù)據綁定時,DataBinder.Eval 特別有用,因為數(shù)據行和數(shù)據字段通常都必須強制轉換。

以上就是asp.net中Bind和Eval的區(qū)別,希望在asp.net的應用中對大家有所幫助。

【編輯推薦】

  1. ASP.NET中使用AJAX中的方式
  2. ASP.NET中WCF服務與ASMX服務的兼容性
  3. ASP.NET中using的用法三則
  4. ASP.NET表單介紹
  5. ASP.NET中Get和Post的用法
責任編輯:book05 來源: hi.baidu
相關推薦

2009-07-20 15:18:18

Bind標簽Eval標簽ASP.NET 2.0

2009-07-22 15:50:36

J#和C++ASP.NET

2009-09-10 23:17:33

ASP.NET Eva

2009-07-22 18:03:00

ASP.NET ASP

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2011-06-08 11:05:38

getpost

2009-09-10 22:36:51

ASP.NET Eva

2010-07-15 14:38:55

Perl eval函數(shù)

2009-07-27 14:41:33

ASP.NET調用存儲

2009-07-22 17:21:27

ASP.NET 2.0

2009-07-28 14:06:28

ASP.NET 2.0

2009-07-20 18:06:26

ASP.NET限制上傳

2009-07-29 16:08:07

ASP和ASP.NET

2009-08-04 17:20:37

PostBack和ViASP.NET

2009-06-09 11:37:51

ViewStateViewDataASP.NET

2009-07-31 18:12:58

ASP.NET數(shù)據綁定

2009-08-05 17:26:25

ASP.NET 2.0

2009-07-24 10:10:22

ASP.NET

2009-07-24 16:17:42

WebRequestEASP.NET

2009-08-07 15:34:15

ASP.NET數(shù)據綁定
點贊
收藏

51CTO技術棧公眾號