直到今天我才使用4.10。我现在升级到4.13(最新),所以做了一些回归。
我注意到的第一件事就是多排序。
在4.10中,多重排序顺序是按列的顺序(从左到右)。
在4.13.5(最新版)中,排序顺序是先选择哪一列。
正确的行为(IMO)应按列的顺序排列,因此如果对列重新排序,则最左边的列将接管并成为应用排序的第一个元素。
当前的新行为是排序基于“首先选择,始终首先”令人困惑,因为用户无法判断应用多重排序的顺序。
说明:
查看下面的2个表,您可以看到它们按两列排序,“总运行”和'开始时间':
两个表都保存完全相同的数据,以完全相同的方式排序,但仍然显示不同的排序结果。
结果不同的原因是,排序的索引是按用户点击排序的顺序构建的,而不是按列的顺序构建的(在索引中最左边的接管) )。这不符合标准,因为用户无法通过这种多列搜索来确定哪一列是两列中的主列。在4.10中,订单是固定的,因此如果用户想要更改订单,则必须将列移动到右侧(或左侧)。至少这会给出一些指示哪个列首先占据的指示。
我没有说使用列来订购多搜索是最佳做法,但至少它给出了一些指示。在目前的实施中,没有任何迹象表明。加载预定义过滤时,这尤其令人困惑。
谢谢,
塔尔。
答案 0 :(得分:1)
首先,免费jqGrid的最新版本是4.13.6。它发布于10天前(2016-12-24)。版本4.13.5于2016年11月3日发布。
多次排序(multiSort: true
)时的排序顺序对最终结果很重要。 用户应该能够指定具有他/她想要的结果的顺序。旧的行为不允许用户自由。因此,行为是固定的。如果您在sortname
中指定订单,则应按照列的顺序小心。字符串
p.sortname + " " + p.sortorder
定义将用于排序的顺序。如果你真的需要一些固定的排序,那么你可以尝试在p.sortname
回调中“{normilize”onSortCol
。