首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

全选/不全选的 javascript有关问题

2012-02-08 
全选/不全选的 javascript问题在gridview中写了一个关于全选的脚本ItemTemplateasp:CheckBoxID Check

全选/不全选的 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源代码检查下有关对象是否存在

热点排行