2015-04-12 37 views
0

我正在使用jqGrid分組和數據本地。 我的數據已經排序,所以我只是想根據我的數據數組的順序顯示它。但是,我注意到,當我使用分組時,jqGrid實際上改變了我的數據的順序。 我可以在此plunkr中重現此問題。數據的順序應該是1 2 3 4 5 6,但它是顯示1 2 4 5 6 3使用數據本地搞亂jqGrid分組中的數據排序

我目前正在使用jqGrid 4.6.0。目前我可以考慮的解決方法是添加名爲「rankOrder」的隱藏列,然後在loadComplete上根據rankOrder對列進行排序。我在我的應用程序中有多個表,所以我想避免這樣做(爲每個表添加隱藏列)。有人知道更好的解決方法嗎?

更新: 我注意到這也與免費的jqGrid 4.8.0,這裏是由用戶創建奧列格工作演示發生,我不分叉它重現我的問題here

回答

1

可以解決的問題在初始加載本地數據期間通過用datastr: myData, datatype: "jsonstring"代替data: myData, datatype: "local"對第一頁進行排序。另一方面,您使用本地分頁的數據。要顯示數據的下一頁jqGrid必須對數據進行排序以獲取下一頁。

因此我想,你只需要添加sortname: "OrderID"選項電網解決您的問題,並顯示由CustomerID分組的數據,並通過OrderID另外排序。你應該保持原來的data: myData, datatype: "local"。我建議您在排序過程中在OrderID中添加sorttype: "integer"以在9之後具有10,而不是在12之間。

+0

如往常一樣再次感謝:)只是一個問題,當啓用分組時,它爲什麼不保留數據的順序?這個問題在沒有啓用分組時不會發生(它保留了數據的順序) – blenzcoffee

+0

@blenzcoffee:不客氣!我的回答可能不夠好。 *本地分組*的實現意味着在顯示頁面之前,將始終創建分頁。如果您只使用分組,則只能按一列進行排序*。它可以改變行的原始順序。通過包含額外的'sortname:「OrderID」'排序將由**兩列**:分組列和'sortname'。如果您有多個行的兩列值相同,那麼訂單仍可以更改。 – Oleg

+0

我現在看到。謝謝!! – blenzcoffee