jquery EasyUI datagrid:一次生成4個以上table時,frozencolumns顯示不全問題修復(fù)

創(chuàng)建4個以上table,期望table可以上下左右滑動,發(fā)現(xiàn)easyui的datagrid可以輕松實(shí)現(xiàn)這個功能。

但是table加載過程中,總有某個table的frozencolumns不能完全顯示,具體如下圖:

前三列“序列”,“列名”,“列一” 為凍結(jié)列,使用Chrome,右鍵選擇檢查元素,發(fā)現(xiàn)“列一”列其實(shí)是有值的。與其它正常顯示的表格對比,發(fā)現(xiàn)EasyUI自動生成的html代碼中,class=“panel datagrid” DIV 最后一個style節(jié)點(diǎn)中,缺少frozencolumn的樣式數(shù)據(jù),導(dǎo)致在table比較多并且數(shù)據(jù)為空的情況下,frozencolumns顯示不全。

解決辦法:

1. 在整個解決方案中搜索<style type=\"text\css\" easyui=\"true\">,在jquery.easyui.min.js發(fā)現(xiàn)如下代碼;

逆向查代碼發(fā)現(xiàn),jquery.easyui.min.js中調(diào)用add函數(shù)的語句如下:

在add style之后,又執(zhí)行了dirty操作和clean操作,在clean操作中又調(diào)用了remove函數(shù),如下圖 remove函數(shù)是根據(jù)dirty函數(shù)中加入的cellSelectorPrefix進(jìn)行刪除操作的。所以,應(yīng)該是dirty函數(shù)中加入的cellSelectorPrefix,導(dǎo)致程序多刪了正確的style。

頁面調(diào)試看到,只要class中包含".datagrid-cell-c1"的樣式都會被刪除,樣式".datagrid-cell-c17-xxxx"的樣式也被誤刪,這樣就導(dǎo)致frozencolumns顯示不全。

目前我暫時的解決辦法是,在調(diào)用dirty函數(shù)的時候,將cellSelectorPrefix改成cellSelectorPrefix+“-”,這樣就不會把樣式".datagrid-cell-c17-xxxx"誤刪了。

在jquery.easyui.min.js中修改的代碼如下,就能修復(fù)這個問題了。

發(fā)現(xiàn)版本jquery-easyui-1.6.1以及之前的版本都有這個問題。

如果大家有更好的解決辦法,歡迎留言交流。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容