你好~
我大概看了一下你的这段语法.
其中一句话:
CheckBox cbox = (CheckBox)(gvdaxh.Rows[i].FindControl("CheckBox1"));
当中的Rows[i]后面应该再加上Cells[xxx]应该是写固定的,你的那个checkbox在gridview中第几列了.比如说checkbox在第一列,这个中括号里面XXX应该是写0,如果是在第二个,应该时候写1,以此类推.
当然选不中了,你仔细看看
if (CheckBox2.Checked == true) 这里是选中状态可是条件里面还要让他继续选中会有变化吗?
{
cbox.Checked = true;
}
else 这里是没选中状态可是条件里面还要让他继续没选中,会有变化?
{
cbox.Checked = false;
}
好赖换一下嘛……
if (CheckBox2.Checked == true)
{
cbox.Checked = false;
}
else
{
cbox.Checked = true;
}
CheckBox cbox = (CheckBox)(gvdaxh.Rows[i].FindControl("CheckBox1"));
.Rows[0].Cells[checkbox的列索引-1].FindControl("CheckBox1")
还有
if (CheckBox2.Checked)//这样就行了,不需要再==true那么麻烦
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
另外用js实现的话效果好得多,不会刷新页面不回有回传,不建议用后台写这种全选功能。
function selectAll(obj) {
var input = document.getElementsByTagName("input"); //所有input
for (var i = 0; i < input.length; i++)//将下面的checkbox设为与CheckBox2的checked相同
{
if (input[i].type == "checkbox") {
if (input[i].checked != null) input[i].checked = obj.checked;
}
}
}
AutoPostBack="true" 你是不是没有加这个属性哈
CheckBox1不能用这个,运行后在页面中得不到“CheckBox1”,具体的你可以运行后在页面中查看源码可以得到其名
要不你就这样ID就不会变