最近用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模式的時候.
這個設計就會讓速度很慢了..