日期:2014-05-16  浏览次数:20480 次

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属性啊?