我在datagrid中要用到三个模板列,且位置在0,4,9 三个位置。为了便于控制。因此,我在datagrid的属性生成器中清除了 在“在运行时自动创建单选框”。然后我添加了模板列。
 可问题出现了,不知道是不是我的数据量有点大的原因,还是别的。我的 datagrid 和该页面连移动都延时。我不知道是什么原因?可能是病毒吗?当我选中“在运行时自动创建单选框”时,就好 了
可这样我又不能设置模板列的位置,怎么办呢?

解决方案 »

  1.   

    你是说 叫我自己创建模板列吗?然后添加到datagrid吗?
      

  2.   

    不知道你绑定的datagrid的数据源是什么?
    用datareader快一点,如果你的数据量很大的话。
    其次,你还要调整你的数据库,增加索引字段可以很好的解决大容量查询的问题!
      

  3.   

    我帮定的是一个datatable ,表有21列,但实际上我查询是只用10列左右,现在数据库除了个主键,什么都没有!
      

  4.   

    可以考虑使用repeater控件,repeater相对datagrid\datalist要快多了
      

  5.   

    是啊,我用的就是DataView,我的意思是为什么 [我在datagrid的属性生成器中清除了 在“在运行时自动创建单选框”,我手动添加项,速度慢;但当我当我选中“在运行时自动创建单选框”时,就好了]
      

  6.   

    懒人用datagrid
    repeater全由HTML组成,简单快速
      

  7.   

    也许把 repeater 可能很好,但datagrid为什么不行呢
      

  8.   

    速度慢和Datagrid没有太大关系,是不是你的结构没处理好?
      

  9.   

    你可以到msdn上看看repeater速度最快,其次是datalist 最后是datagrid
    datalist、datagrid都是基于datatable模型的,用起来方便但是以牺牲性能为代价datagrid如果你用它来分页,数据量大的话,你就要写好存储过程,优化好了,真样他的速度快些。repeater是不支持那么多模板的,好多还要手写html,但是控制起来很灵活,要是分页的话就没有datagrid方便了
    所以这三个控件,要看你用在什么情况下。
      

  10.   

    http://community.csdn.net/Expert/TopicView3.asp?id=4616896看看这个就知道原因了。慢的原因是这个:<%# DataBinder.Eval(Container, "DataItem.CityID")%>无论是什么控件,只要用这种方法就会慢很多,帖子里有解决方法。