使用本地数据搞乱了 jqGrid 分组中的数据排序

Using data local messed up the data sorting in jqGrid grouping

我正在对本地数据使用 jqGrid 分组。 我的数据已经排序,所以我只想按照我的数据数组的顺序显示它。但是,我注意到在我使用分组时 jqGrid 实际上改变了我的数据顺序。 我可以在这个 plunkr 中重现这个问题。数据的顺序应该是 1 2 3 4 5 6 但它显示的是 1 2 4 5 6 3

我目前使用的是 jqGrid 4.6.0。目前,我认为的解决方法是添加一个名为 "rankOrder" 的隐藏列,然后在 loadComplete 上,根据 rankOrder 对该列进行排序。我的应用程序中有多个 table,所以我想避免这样做(向每个 table 添加隐藏列)。有人知道更好的解决方法吗?

更新: 我注意到 free jqGrid 4.8.0 也会发生这种情况, 这是用户 Oleg 创建的工作演示,我将其分叉以重现我的问题 here

您可以通过将 data: myData, datatype: "local" 替换为 datastr: myData, datatype: "jsonstring" 来解决 初始加载本地数据时第一页排序的问题 。另一方面,您使用 本地分页 数据。要显示下一页数据,jqGrid 必须对数据进行排序以获得下一页。

因此我想您只需向网格添加 sortname: "OrderID" 选项即可解决您的问题并显示按 CustomerID 分组并排序 的数据另外 OrderID。你应该保持原来的 data: myData, datatype: "local"。我建议您在 OrderID 中添加 sorttype: "integer",以便在 9 之后添加 10,而不是在排序期间在 12 之间。