在GridView 中绑顶数据列可以有两种方式 一是让它自动生成字段 一是手动绑顶字段。但是在后代码编写程序时,发现他们俩有区别,想问下大伙什么原因。我在编写一函数时,用到了一个For 循环
for(int i=0;i<GridView1.Columns.count;i++)
{
............
}
如果GridView 是自动生成字段的话,这个For 循环就不会执行。(GridView1.Columns.Count =0)
但是如果是手动添加的绑顶字段,就会执行For 循环里的代码
为什么啊?自动生成字段不是也会产生列吗?

解决方案 »

  1.   

    你这是循环是放在绑定前执行的还是绑定后执行的?绑定前执行当然没有Column了。
      

  2.   

    如果GridView 是自动生成字段的话,这个For 循环就不会执行。(GridView1.Columns.Count =0)========这是一个已知的问题,颇让人费解,asp.net team 为何如此设计的前后不一致?当前版本 (2.0) GridView.Columns 仅表示,显示的添加到其中的 Column,
    通过 AutoGenerateColumns = true 生成的列不包含其中
      

  3.   

    幸好, AutoGenerateColumns = true 基本是鸡肋功能, 我几乎可以忽略它的存在!
      

  4.   


    flaigd(骑白马的不一定是王子,可能是唐僧..) 你这是循环是放在绑定前执行的还是绑定后执行的?绑定前执行当然没有Column了。
    ----------------------------------------------
    当然是绑顶之后啦
      

  5.   

    Jinglecat(晓风残月 >> 问题需简洁,错误要详细,需求得明确) ( )
    当前版本 (2.0) GridView.Columns 仅表示,显示的添加到其中的 Column,
    通过 AutoGenerateColumns = true 生成的列不包含其中
    -------------------------------------------------------------
    谢谢你!
      

  6.   

    那个Count本来就是你绑定的列,自动生成是不算的
      

  7.   

    Jinglecat(晓风残月 >> 问题需简洁,错误要详细,需求得明确) 
    这是一个已知的问题,颇让人费解,asp.net team 为何如此设计的前后不一致?当前版本 (2.0) GridView.Columns 仅表示,显示的添加到其中的 Column,
    通过 AutoGenerateColumns = true 生成的列不包含其中-------------------------------------------------------------------------一直纳闷,为什么非要显式添加的Column才会计算在内,微软大意了,难道是?期望改进后的GridView赶快出来!!