全选/不全选的 javascript问题
在gridview中写了一个关于全选的脚本
<ItemTemplate>
<asp:CheckBox ID= "Checkbox " runat= "server " onclick= "cancleAll(this.checked); " />
</ItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID= "CheckAll " runat= "server " onclick= "selectAll(this.checked); " /> 全选
</HeaderTemplate>
function selectAll(ifcherk)
{
var tb = document.getElementById( "dgrdUserData ");
for(var i=1;i <tb.rows.length;i++)
{
if(ifcherk == true)
tb.rows[i].cells[0].firstChild.firstChild.checked = true;
else
tb.rows[i].cells[0].firstChild.firstChild.checked = false;
}
}
可以完成点击全选框 选中或取消 当前页所有的checkbox
另外还想实现一个脚本,取消当前列中任意一个checkbox,都可以使CheckAll全选框的状态变成取消,但是脚本似乎有问题
1、
function cancleAll(ifcherk)
{
var tb = document.getElementById( "CheckAll ");
if(ifcherk == false)
tb.checked = false;
}
错误提示是 "null "为空或不是对象
2、想通过找到gridview中头字段这种方法来找到CheckAll似乎也不行,提示找不到headrow.cells[0]
function cancleAll(ifcherk)
{
var tb = document.getElementById( "dgrdUserData ");
if(ifcherk == false)
tb.headrow.cells[0].firstChild.firstChild.checked = true; ;
}
请各位大哥帮忙看看脚本那里写错了?
[解决办法]
2. tb.headrow 能这么写吗?! head就是第1行 tb.rows[0]
[解决办法]
我自己用JS写的全选和全不写checkbox
<script language= "javascript ">
function selectall() {
var objs = ExceptionList.getElementsByTagName( "input ");
for(var i=0; i <objs.length; i++) {
if(objs[i].type.toLowerCase() == "checkbox " )
objs[i].checked = true;
}
}
function selectnone() {
var objs = ExceptionList.getElementsByTagName( "input ");
for(var i=0; i <objs.length; i++) {
if(objs[i].type.toLowerCase() == "checkbox " )
objs[i].checked = false;
}
}
</script>
<ItemTemplate>
<input type= "checkbox " runat= "server " id= "cb " value= ' <%# Eval( 'XXID ') %> '/>
</ItemTemplate>
<input id= "Button1 " type= "button " value= "全选 " onclick= "selectall() " />
<input id= "Button2 " type= "button " value= "取消全选 " onclick= "selectnone() "/>
[解决办法]
1、
function cancleAll(ifcherk)
{
/*DOM中没有CheckAll 看HTML源码就知道了*/
var tb = document.getElementById( "CheckAll ");
if(ifcherk == false)
tb.checked = false;
}
2.
function cancleAll(ifcherk)
{
var tb = document.getElementById( "dgrdUserData ");
if(ifcherk == false)
/*table看你的意思应该是一个table 没有headrow*/
//tb.headrow.cells[0].firstChild.firstChild.checked = true; ;
//试试,如果正常,头应该是第一行
tb.rows[0].cells[0].....................................
}
[解决办法]
1.加上xx!=null判断,跟踪下
2.在输出后的html源代码检查下有关对象是否存在