easyui-datagrid 不使用footer完成 首行合計不參與前臺排序
1.前臺假分頁,假排序,不依賴後臺程式碼,將效能瓶頸放在瀏覽器端。假分頁的需求--忽略第一行合計列進行排序
我的構思是
1st 將排序後的結果取出來
2 sec 人為修改排序結果。
3 third 將排序結果塞入表格
然而通過官方提供的api 依次使用了 load loadData reload
以及 refreshRow 等 發現 迴圈 遍歷 使用 refreshRow 資料量 過大 會 假死。
折中一下 跟 原始碼後發現。easy ui 底層提供重新整理表格 使用的方法是
opts.view.render.call(opts.view, _6b7, dc.body2, false);
opts 是 $("#dg").datagrid("options") 獲得
_6b7是 $("#dg")[0] 標籤元素 非dom 文件流物件
dc.body2 是啥 沒具體看 不過 我只要獲取dc 就行了
var dc = $(this).datagrid("reload").data().datagrid.dc;
最後一張圖 黑色 塊 則是最終程式碼。。
分頁後速度賊快
下圖中是 一個簡單的前臺排序程式碼段,當我點選對應的預警狀態後 會進入 sorter 方法。然後呼叫easyui 程式碼
程式碼 第 11553行 (格式化後) 返回 1或者-1 這套邏輯 來進行 排序。 然後呼叫
11562 行程式碼處重新整理表格