zoukankan      html  css  js  c++  java
  • Eval( " ")和DataBinder.Eval(Container.DataItem, " ")区别(转)

    Eval( " ")和Bind( " ") 这两种一个单向绑定,一个双向绑定

    bind是双向绑定,但需数据源可更改才能用

    ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器。由于这个原因,Eval只能在数据绑定控件的模板中使用,而不能用于Page(页面)层。当然,ASP.NET 2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。
    下面的例子演示了如何使用新的简化的Eval数据绑定语法绑定到DataList数据项模板(ItemTemplate)中的Image、Label和HyperLink控件。

    <asp:DataList ID= "DataList1 " RepeatColumns= "" Width= "600 " runat= "server " DataSourceID= "ObjectDataSource1 "> 
     <ItemTemplate> 
      <asp:HyperLink ID
    = "HyperLink1 " runat= "server " NavigateUrl= '<%# Eval( "PhotoID ""PhotoFormViewPlain.aspx?ID={0} "%> '> 
      <asp:Image ID
    = "Image1 " Runat= "server " ImageUrl= '<%# Eval( "FileName ""images/thumbs/{0} "%> ' /></asp:HyperLink> 
      <asp:Label ID
    = "CaptionLabel " runat= "server " Text= '<%# Eval( "Caption "%> ' /> 
     <
    /ItemTemplate> 
    /asp:DataList><br /> 
    <asp:ObjectDataSource ID
    = "ObjectDataSource1 " runat= "server " TypeName= "DataComponentTableAdapters.PhotosTableAdapter " SelectMethod= "GetPhotosForAlbum "> 

      数据绑定也可以作为控件的主题定义(theme definition)的一部分,这样我们就可以通过改变主题来随意地改变模板化控件的布局和外观。但是Theme(主题)模板中只能使用Eval(或者后面讨论的Bind)。绑定到任意的用户代码是被禁止的。

  • 相关阅读:
    P2634 [国家集训队]聪聪可可
    P2051 [AHOI2009]中国象棋
    java集成工具的简单总结
    java-web中的web.xml中的servlet和servlet-mapping标签,及网页处理流程
    ecplist中快速添加set get方法
    Spring创建容器之new ClassPathXmlApplicationContext错误
    设计模式之工厂模式
    java-web项目的eclipse里面引入jar包
    DES原理及代码实现
    Linux网络篇,ssh原理及应用
  • 原文地址:https://www.cnblogs.com/liuzhengliang/p/1600008.html
Copyright © 2011-2022 走看看