关于CheckBox的问题
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???
请大虾帮帮忙啊!!!
------解决方案--------------------CheckBox 的autoPostBack是false吗?
------解决方案--------------------问题大多数出在你绑数据的时候没有考虑PostBack,所以CheckBox对象又重新初始化状态,所有Checked = false
Page_Load事件里看看是不是没有if(IsPostBack)
------解决方案--------------------CheckBox 的autoPostBack 设置成true
------解决方案--------------------因为BUTTON的ONCLICK事件是在PAGE LOAD后触发的,
如果在ONCLICK之前重新BIND了,CHECKBOX的值就恢复为初值了。
请查看是否把GRIDVIEW的BINDING的方法放在 NOT ISPOSTBack里面。
if not ispostback then
GRIDVIEWBIND()。。。。。
end if