技术开发 频道

javascript实现datagrid客户端checkbox列的全选,反选


【IT168技术文档】

  这是一个偷巧的方法,但不通用。前提是这个页面只有一个datagrid,且只有datagrid中有checkbox;这个就比较方便。主要思路就是搜索出整个页面的checkbox,将它们全部选中或反选。
// 全选 function allCheck() { for (var i=0;i<Form1.elements.length;i++) { var e=Form1.elements[i]; if (e.type=='checkbox') e.checked=true; } } //反选 function revCheck() { for (var i=0;i<Form1.elements.length;i++) { var e=Form1.elements[i]; if (e.type=='checkbox') e.checked=!e.checked; } }
  通用简单格式
  因为asp.net页面中生成datagrid中的checkbox,他的ID是要改变的,所以我们寻找它们的规律,就可以准确的找到这个控件,从而进行全选和反选及选中的操作,
  参数说明:
  prefix:前缀;s:选择框ID;chk:选择框的ID;
function getObj( objID ) { return document.getElementById( objID ); } // 全选 function _SelectAll( prefix,s,chk ) { var oArr = _GetColl( prefix,s,chk ); for( var o in oArr ) { oArr[o].checked = true; } } // 反选 function _RevSelect( prefix,s,chk ) { var oArr = _GetColl( prefix,s,chk ); for( var o in oArr ) { oArr[o].checked = !oArr[o].checked; } } // 获值 function _GetColl( prefix,s,chk ) { var i = s; var oArr = new Array(); while( true) { var o = getObj( prefix + '__ctl' + i + '_' + chk); if( o != null ) { oArr.push( o ); } else { break; } i++; } return oArr; } // 检查是否选中 function _CheckSelect( prefix,s,chk ) { var oArr = _GetColl( prefix,s,chk ); for( var o in oArr ) { if( oArr[o].checked) { return true; } } return false; }
0
相关文章