免费 jqGrid - 排序顺序问题

Free jqGrid - Sorting order issue

直到今天我都在使用 4.10。我现在升级到 4.13(最新)所以做一些回归。

我首先注意到的是多重排序。

在4.10中,多排序是按照列的顺序(从左到右)。

在 4.13.5(最新)中,排序顺序是先选择哪一列。

正确的行为 (IMO) 应该按列的顺序排列,因此如果对列重新排序,最左边的列将接管并成为应用排序的第一个元素。

排序基于 "first selected, always first" 的当前新行为令人困惑,因为用户无法判断应用多重排序的顺序。

解释:

查看下面的 2 个表格,您可以看到它们按两列排序,'Total Runs' & 'Start Time':

两个表都包含完全相同的数据,以完全相同的方式排序,但仍然显示不同的排序结果。

不同结果的原因是,排序索引是按照用户点击排序的顺序构建的,而不是按照列的顺序构建的(最左边的接管了指数)。这不符合标准,因为用户无法确定在这样的多列搜索中哪一列是两列中的主列。在 4.10 中,顺序是固定的,因此如果用户想要更改顺序,他必须将列向右(或向左)移动。至少这给出了一些指示,哪一列排在第一位。

我并不是说使用列对多搜索进行排序是最佳做法,但至少它给出了一些指示。在当前的实施中,没有任何迹象表明会发生什么。这在加载 pre-define 过滤时尤其令人困惑。

谢谢,

总计

首先,免费的jqGrid最新版本是4.13.6。它发布于 10 天前 (2016-12-24)。版本 4.13.5 于 2016 年 11 月 3 日发布。

多重排序 (multiSort: true) 情况下的排序顺序对最终结果很重要。 用户 应该能够指定得到结果的顺序,he/she 想要得到的结果。旧行为不允许用户自由。因此,行为是固定的。如果您在 sortname 中指定顺序,那么应该注意列的顺序。字符串

p.sortname + " " + p.sortorder

定义顺序,用于排序。如果你真的需要一些固定的排序顺序,那么你可以尝试 "normilize" p.sortnameonSortCol 回调中。