在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; ;
}请各位大哥帮忙看看脚本那里写错了?

解决方案 »

  1.   

    最好在onchange事件里写
    1. var tb = document.getElementById("<%=CheckAll.ClientID%>");
      

  2.   

    2.  tb.headrow 能这么写吗?! head就是第1行 tb.rows[0]
      

  3.   

    我自己用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()"/>
      

  4.   

    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].....................................
    }
      

  5.   

    1.加上xx!=null判断,跟踪下2.在输出后的html源代码检查下有关对象是否存在
      

  6.   

    tb.headrow.cells[0].firstChild.checked = true; 
    搞定 谢谢各位老大