easyui datagrid beginedit 速度很慢 问题 解决方案

最近用easyui 效果是不错,不过号称开源的他,我是死活没找到源文件到底在哪里.

我使用的1.3.4版本在使用datagrid的时候有个问题.

当datagrid里面有很多行的时候.比如二三十行,对任何一个没有beginedit的行做beginedit的时候会很慢

解决方案:

打开easyui的JS文件(或许需要格式化一下),搜索函数:

 function _58f(_590 

这个就是beginedit了.

找到下面的_537(_590); 改成 _537(_590,tr);

然后找到函数:

function _537(_538,tr) 

在函数第二行插入一些内容插入后是:

function _537(_538,tr) {
        var dc = $.data(_538, "datagrid").dc;
        if(tr){
            tr.find("div.datagrid-editable").each(function () {
            var cell = $(this);
            var _539 = cell.parent().attr("field");
            var col = $(_538).datagrid("getColumnOption", _539);
            cell._outerWidth(col.width);
            var ed = $.data(this, "datagrid.editor");
                if (ed.actions.resize) {
                    ed.actions.resize(ed.target, cell.width());
                }
            });
            return;
        }
        dc.view.find("div.datagrid-editable").each(function () {
            var cell = $(this);
            var _539 = cell.parent().attr("field");
            var col = $(_538).datagrid("getColumnOption", _539);
            cell._outerWidth(col.width);
            var ed = $.data(this, "datagrid.editor");
            if (ed.actions.resize) {
                ed.actions.resize(ed.target, cell.width());
            }
        });
    };

下面那个默认的函数会对整个datagrid里面的所有的edit控件做处理.

虽然easyui 可能希望我们不要保持所有的行都在edit状态下面.(如果这样,全部的edit cell确实不多),但是在一定需要保持所有行都在edit模式的时候.

这个设计就会让速度很慢了..

 

posted @ 2013-11-22 17:40  naclhhn  阅读(3441)  评论(1编辑  收藏  举报