Eval方法与Bind方法比较

转载 2007年09月19日 13:10:00

使用   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   控件。当数据绑定控件将这些输入控件作为自身呈现的一部分创建时,该方法便可提取输入值。    
   
  Bind   方法采用数据字段的名称作为参数,从而与绑定属性关联,如下面的示例所示:  
   
  <EditItemTemplate>  
      <table>  
          <tr>  
              <td   align=right>  
                  <b>Employee   ID:</b>  
              </td>  
              <td>  
                  <%#   Eval("EmployeeID")   %>  
              </td>  
          </tr>  
          <tr>  
              <td   align=right>  
                  <b>First   Name:</b>  
              </td>  
              <td>  
                  <asp:TextBox   ID="EditFirstNameTextBox"   RunAt="Server"  
                      Text='<%#   Bind("FirstName")   %>'   />  
              </td>  
          </tr>  
          <tr>  
              <td   align=right>  
                  <b>Last   Name:</b>  
              </td>  
              <td>  
                  <asp:TextBox   ID="EditLastNameTextBox"   RunAt="Server"  
                          Text='<%#   Bind("LastName")   %>'     />  
              </td>  
          </tr>  
          <tr>  
              <td   colspan="2">  
                  <asp:LinkButton   ID="UpdateButton"   RunAt="server"  
                      Text="Update"   CommandName="Update"   />  
                  &nbsp;  
                  <asp:LinkButton   ID="CancelUpdateButton"   RunAt="server"  
                      Text="Cancel"   CommandName="Cancel"   />  
              </td>  
          </tr>  
      </table>  
  </EditItemTemplate>  
   
  单击行的   Update   按钮时,使用   Bind   语法绑定的每个控件属性值都会被提取出来,并传递给数据源控件以执行更新操作。   
 使用   DataBinder.Eval  
  ASP.NET   提供了一个名为   DataBinder.Eval   的静态方法,该方法计算后期绑定的数据绑定表达式,并将结果格式化为字符串(可选)。利用此方法,可以避免许多在将值强制为所需数据类型时必须执行的显式强制转换操作。  
   
  例如,在下面的代码片段中,一个整数显示为货币字符串。使用标准的   ASP.NET   数据绑定语法,必须首先强制转换数据行的类型以便检索数据字段   IntegerValue。然后,这将作为参数传递到   String.Format   方法:  
   
  <%#   String.Format("{0:c}",   ((DataRowView)Container.DataItem)["IntegerValue"])   %>    
  将此语法与   DataBinder.Eval   的语法进行比较,后者只有三个参数:数据项的命名容器、数据字段名称和格式字符串。在模板化列表中(如   DataList   类、DataGrid   类或   Repeater   类),命名容器始终是   Container.DataItem。  
   
  <%#   DataBinder.Eval(Container.DataItem,   "IntegerValue",   "{0:c}")   %>    
  格式字符串参数是可选的。如果它被忽略,DataBinder.Eval   将返回类型对象的值,如下面的示例所示:  
   
  <%#   (bool)DataBinder.Eval(Container.DataItem,   "BoolValue")   %>  
  当对模板化列表中的控件进行数据绑定时,DataBinder.Eval   特别有用,因为数据行和数据字段通常都必须强制转换。  
Eval用来显示。   
Bind用来更新。

Eval   方法是静态(只读)方法,该方法采用数据字段的值作为参数并将其作为字符串返回。Bind   方法支持读/写功能,可以检索数据绑定控件的值并将任何更改提交回数据库。

eval()方法在运行时使用反射执行后期绑定计算,因此与标准的ASP.NET数据绑定方法bind相比,会导致性能明显下降。它一般用在绑定时需要格式化字符串的情况下。多数情况尽量少用此方法。

 

数据绑定Eval与Bind区别

使用数据绑定语法,可以将控件属性值绑定到数据,并指定值以对数据进行检索、更新、删除和插入操作。 数据绑定语法          数据绑定表达式包含在  分隔符之内,并使用 Eval 和 Bind ...
  • nuptsv_ice
  • nuptsv_ice
  • 2014年04月21日 16:55
  • 930

.NET中Bind和Eval的区别

eval()方法在运行时使用反射执行后期绑定计算,因此与标准的asp.net数据绑定方法bind相比,会导致性能明显下降。它一般用在绑定时需要格式化字符串的情况下。多数情况尽量少用此方法   E...
  • xueer8835
  • xueer8835
  • 2010年11月10日 15:16
  • 2900

Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用

 “/vs2005”应用程序中的服务器错误。------------------------------------------------------------------------------...
  • ycyangcai
  • ycyangcai
  • 2007年04月29日 23:11
  • 9931

Eval方法与Bind方法比较

使用   Eval   方法     Eval   方法可计算数据绑定控件(如   GridView、DetailsView   和   FormView   控件)的模板中的后期绑定数据表达式。在运...
  • elvis_gao
  • elvis_gao
  • 2007年09月18日 19:18
  • 703

解决Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用

在FormView里放置了一个DropDownList在绑定的时候设定SelectedValue=,运行时提示:Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下...
  • jam_li
  • jam_li
  • 2007年03月22日 15:38
  • 10047

js中的Eval方法

eval 方法 检查 JScript 代码并执行. eval(codeString) 必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JS...
  • VS_URL
  • VS_URL
  • 2012年10月04日 15:54
  • 1395

js eval替代方法学习笔记

写前端的小伙伴们都知道,js种eval()方法是用来把一段字符串转换成js代码并执行。但是eval的执行效率非常差,并且容易造成作用于混乱。所以非常不提倡使用eval,甚至要避免使用。 但是在某些情况...
  • guo8ke
  • guo8ke
  • 2017年04月28日 10:07
  • 2866

JavaScript的eval()方法的使用

在做AJAX应用开发的时候,我们通常喜欢把服务器端返回的JSON格式字符串在客户端的回调函数中把它作为JavaScript代码执行并用一个变量保存起来,以方便使用返回的数据。 通常的做法就是var ...
  • DevilLittle
  • DevilLittle
  • 2016年05月29日 13:49
  • 983

ASP.NET (C#) Eval 和 Bind 的格式化

 Eval和Bind的格式化字符串所处位置不同,以下举出几个例子: 1.Eval是单向取值,既可以使用系统定义的函数格式化,也可以调用自己定义的格式化函数(如例子中的MyFormatFunction函...
  • shenhaha001
  • shenhaha001
  • 2008年05月28日 00:12
  • 4931

Eval方法和Bind方法的区别?

 Eval方法和Bind方法的区别?Eval是只读的方法(单向数据绑定),所绑定的内容为不会提交回服务器。比如图书的ISBN,并不想让用户做任何修改,可以使用: Eval还有一个重载的方法,可以实现格...
  • hnzhoumeng
  • hnzhoumeng
  • 2009年12月28日 20:56
  • 227
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Eval方法与Bind方法比较
举报原因:
原因补充:

(最多只允许输入30个字)