protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {        if (e.Row.RowType == DataControlRowType.DataRow)
        {
           
            ((CheckBox)e.Row.Cells[2].FindControl("chk")).Checked = true;          
          
        }    }
这是绑定事件,为什么会提示未实例话对象呢????

解决方案 »

  1.   

    没有找到chk这个checkbox请检查.
      

  2.   

    没找到控件,e.Row.Cells[2].---表示第3个哟
      

  3.   

    e.Row.Cells[2].FindControl("chk") 应该是这个没找到,检查一下
      

  4.   

    e.Row.Cells[2]  是不是表示第三列 对吧 我有阿
    checkbox是我动态加上去的
      

  5.   

    e.Row.Cells[2].FindControl("chk")不是cells[2]不对,就是chk  的id不对了。
      

  6.   

    使用前最好先判断if(e.Row.Cells[2].FindControl("chk")!=null)
    {
          ((CheckBox)e.Row.Cells[2].FindControl("chk")).Checked = true;   
    }
      

  7.   

    这个checkbox可以用html控件,用起来速度一样要快一些参考这个例子吧http://www.cnblogs.com/weekzero/archive/2006/05/05/392188.aspx
      

  8.   

    如果要动态添加的话,在保证在下次Page_Load时还要添加一次.
      

  9.   

    动态加的话打开HTML的源文件看看这个CHECKBOK的ID是不是"chk"
      

  10.   

    FindControl("chk")改成control[1]
    你是要做全选吗
    foreach (GridViewRow thisrow in GridView1.Rows)
            {
                ((CheckBox)thisrow.Cells[2].Controls[1]).Checked =     true;
            }
      

  11.   

    2种可能会导致这种问题发生:
    1:DataBind未写在!IsPostBack
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindData();
            }
        }
    2:动态绑定后CheckBox始终未NULL,解决方法重新绑定。
    测试方法:添加OnInit后正确执行。
        protected override void OnInit(EventArgs e)
        {
            //base.OnInit(e);
            
            BindData();
        }