Datagrid 中有一个checkbox是全选用的,当datagrid的行数大于100时,在点击全选就很慢,如何解决?
Datagrid 中有一个checkbox是全选用的,当datagrid的行数大于100时,在点击全选就很慢,如何解决?
函数是这样写的:
function SelectAll(ctr)
{
//debugger
var dg = document.getElementById( "dgdMaterialRequest ");
for(var i = 2; i <= dg.rows.length; i++)
{
var j;
if(i.toString().length==1)
j= 'ctl0 '+(i);
else
j= 'ctl '+(i);
var chk = document.getElementById( "dgdMaterialRequest_ "+j+ "_cbIsSelected ");
var drawQuantity=document.getElementById( "dgdMaterialRequest_ "+j+ "_txtDrawQuantity ");
if(chk != null && chk.disabled != true)
{
chk.checked=ctr.checked;
drawQuantity.value= " ";
}
}
}
------解决方案--------------------代码不是太全,很难调试,正常情况下100个不算多,应该很快的。你上面的代码慢应该主要出在DOM这个上面,最好找下有没有其他规律,其他地方的程序也可以做些细小的优化
------解决方案--------------------杀了我也不用dataGrid 用repeater什么事都没了
dataGrid害死不少初学者
------解决方案--------------------建议生成时使得所有checkbox的name属性一致value=ctl01 ctl02... ctlNN
这样post回来的是选中checkbox的值的数组
象这样
ctl01 , ctl02 , ctl04 , ctl05 , ctl08
其实用dataGrid的模版列也应该是相同的name属性啊?