【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; }