protected void Button2_Click(object sender, EventArgs e)//删除按钮
    {
        sqlcon = new SqlConnection(dsn);
        SqlCommand sqlcom;
        for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
        {
            CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
            if (cbox.Checked==true)
            {
                string sqlstr = "delete from ly where id='" + GridView1.DataKeys[i].Value + "'";
                sqlcom = new SqlCommand(sqlstr, sqlcon);
                sqlcon.Open();
                sqlcom.ExecuteNonQuery();
                sqlcon.Close();
            }
        }
        bind();
    }
选中以后,为什么cbox.Checked==false???
请大虾帮帮忙啊!!!

解决方案 »

  1.   

    CheckBox 的autoPostBack是false吗?
      

  2.   

    问题大多数出在你绑数据的时候没有考虑PostBack,所以CheckBox对象又重新初始化状态,所有Checked = falsePage_Load事件里看看是不是没有if(IsPostBack)
      

  3.   

    CheckBox 的autoPostBack 设置成true
      

  4.   

    因为BUTTON的ONCLICK事件是在PAGE LOAD后触发的,
    如果在ONCLICK之前重新BIND了,CHECKBOX的值就恢复为初值了。请查看是否把GRIDVIEW的BINDING的方法放在 NOT ISPOSTBack里面。
    if not ispostback then
     GRIDVIEWBIND()。。
    end if