GridView中设置一个模板列,其中一个放CheckBox,做批量删除用。剩下的各个数据列,都是根据需要动态添加的,添加的时候用 GridView1.Columns.Add()添加,但之前设置的CheckBox在GridView的第一列出现了,想将其放在最后一列出现于是,动态添加字段我改用 GridView1.Columns.Insert  这样效果达到了,但问题出现了选中CheckBox之后,执行按钮的删除事件时, ((CheckBox)GridView1.Rows[i].FindControl("CheckBox1")).Checked 找不着控件(之前用Add添加可以找到)请问这个如何解决呀?

解决方案 »

  1.   

    这好像是一个Bug
    类似的问题
    http://stackoverflow.com/questions/3919991/gridview-columns-insert-cause-my-data-to-vanish-on-postback-but-columns-add他们提供解决方案
    http://connect.microsoft.com/VisualStudio/feedback/details/104994/templatefield-in-a-gridview-doesnt-have-its-viewstate-restored-when-boundfields-are-inserted
      

  2.   

    不过,这种问题还可以换其他的方法实现,比如在客户端记录选中的CheckBox,可以记录id,行数等信息
      

  3.   

    checkbox的ID你没找对,先跑起来,然后右键->源代码,看看ID是啥,注意找出其中的规律