日期:2014-05-19  浏览次数:20456 次

全选/不全选的 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)