疾风萧萧

See, this isn't the finish line.The future is the finish line......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Eval和Bind

Posted on 2006-10-13 22:15  疾风  阅读(1373)  评论(4编辑  收藏  举报
    在Asp.net(2.0?)中,我们可是使用两种方法来绑定数据,一为Eval,一为Bind。下面是使用这两种绑定方法的例子:

 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         &nbsp;
34         <asp:LinkButton ID="CancelUpdateButton" RunAt="server"
35           Text="Cancel" CommandName="Cancel" />
36       </td>
37     </tr>
38   </table>
39 </EditItemTemplate>


    那么,它们之间有什么区别呢?MSDN中说得很清楚啦,呵呵:

    The Eval function is used to define one-way (read-only) binding.
    The Bind function is used for two-way (updatable) binding.The Bind method takes the name of a data field to associate with the bound property.

    也就是说,Eval用于显示只读的数据,而Bind既可以放置只读的数据又可以放置可以更新的数据。此外,Bind方法还把字段和控件的绑定属性联系起来,使得数据控件(比如GridView、FormView和其他数据库控件)的Update、Insert和Delete等方法可以使用这种联系来作出相应的处理。

    另外,在使用Eval和Bind 的时候,还可以在<%# 和 %>写入代码来对内容作出处理,而处理的结果将作为返回值被传出来。