<%# DataBinder.Eval(Container.DataItem, "Field1") %>可用于格式化字符串的时候,比如货币,日期,百分比,浮点小数,前种在c#中似乎不行

解决方案 »

  1.   

    VB.NET中的方法用的在C#中没有,或不同的用法.
      

  2.   

    直接右键单击grid,选择编辑模板列就行了,整这么多乱七八糟的做什么!?
      

  3.   

    C#中似乎没有别的绑定表达式。ceocio(MS MVP)(西南交大)(夏日足球特训) 介绍的文章很有意思,谢谢!
      

  4.   

    可以用:
    <%# DataBinder.Eval(Container, "DataItem.Field1") %>
      

  5.   


    在c#中:<@% ((DataRowView)Container.DataItem)["字段名"] %> 这种效率要高些
      

  6.   

    一般的绑定方法<%# DataBinder.Eval(Container.DataItem, "字段名") %>
    用DataBinder.eval 绑定不必关心数据来源(Dataread或dataset)。不必关心数据的类型eval会把这个数据对象转换为一个字符串。在底层绑定做了很多工作,使用了反射性能。正因为使用方便了,但却影响了数据性能。
    来看下<%# DataBinder.Eval(Container.DataItem, "字段名") %>。当于dataset绑定时,DataItem其实式一个DataRowView(如果绑定的是一个数据读取器(dataread)它就是一个IdataRecord。)因此直接转换成DataRowView的话,将会给性能带来很大提升。.
    <%# ctype(Container.DataItem,DataRowView).Row("字段名") %>
    *对数据的绑定建议使用<%# ctype(Container.DataItem,DataRowView).Row("字段名") %>。数据量大的时候可提高几百倍的速度。使用时注意2方面:1.需在页面添加<%@ Import namespace="System.Data"%>.2.注意字段名的大小写(要特别注意)。如果和查询的不一致,在某些情况下会导致比<%# DataBinder.Eval(Container.DataItem, "字段名") %>还要慢。如果想进一步提高速度,可采用<%# ctype(Container.DataItem,DataRowView).Row(0) %>的方法。不过其可读性不高。
    以上的是vb.net的写法。在c#中:<@% ((DataRowView)Container.DataItem)["字段名"] %>