C#.net gridview与checkbox全选的问题,为什么无法全选呢?

2025-02-26 23:17:02
推荐回答(5个)
回答1:

你好~
我大概看了一下你的这段语法.
其中一句话:
CheckBox cbox = (CheckBox)(gvdaxh.Rows[i].FindControl("CheckBox1"));

当中的Rows[i]后面应该再加上Cells[xxx]应该是写固定的,你的那个checkbox在gridview中第几列了.比如说checkbox在第一列,这个中括号里面XXX应该是写0,如果是在第二个,应该时候写1,以此类推.

回答2:

当然选不中了,你仔细看看
if (CheckBox2.Checked == true) 这里是选中状态可是条件里面还要让他继续选中会有变化吗?
{
cbox.Checked = true;
}
else 这里是没选中状态可是条件里面还要让他继续没选中,会有变化?

{
cbox.Checked = false;
}
好赖换一下嘛……
if (CheckBox2.Checked == true)
{
cbox.Checked = false;
}
else
{
cbox.Checked = true;
}

回答3:

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;
}
}
}

回答4:

AutoPostBack="true" 你是不是没有加这个属性哈

回答5:

CheckBox1不能用这个,运行后在页面中得不到“CheckBox1”,具体的你可以运行后在页面中查看源码可以得到其名
要不你就这样ID就不会变