我有一个jqgrid,其中dataytype是本地的.自动排序适用于每列.我想知道是否可以根据另一列对不同的列进行排序.为了解释这更好的让我们假设我有三列OrderNumber,Address,Phone,和隐藏的列命名State.Address单击列时,我实际上想要排序,如果列是单击的State列.
我想在onSortCol活动中这样做,我想要的东西如下:
onSortCol: function (index, iCol, sortorder) {
if(index === "Address"){
//CHANGE SORTED COLUMN TO STATE AND MAKE THE SORT
}
},
Run Code Online (Sandbox Code Playgroud)
如果使用远程数据(datatype:'json'或datatype:'xml'),则可以非常轻松地实现任何类型的排序.所以我想你的意思是jqGrid与你的问题中的本地数据.在这种情况下,我建议你使用定义为函数的sorttype内部参数colModel.
您可以为Address列定义如下所示的sorttype属性:
sorttype: function(cellValue, rowObject) {
return rowObject.State;
}
Run Code Online (Sandbox Code Playgroud)
或者喜欢这个:
sorttype: function(cellValue, rowObject) {
return rowObject.State + "_" + cellValue;
}
Run Code Online (Sandbox Code Playgroud)
参数cellValue是包含在比较操作中用于对网格进行排序的单元格.该rowObject是reprecent具有全行opject cellValue.cellValue从函数返回另一个值sorttype将跟随返回的值将用于比较操作而不是cellValue.
在第一个sorttype实现示例中(见上文),Address将按照列的名称包含列来完成按列排序State.在第二个例子中,具有相同状态的行将按地址另外排序.
您可以在这里查看小型演示.如果单击"Tax"列,网格将按"id"列排序,其中id值将被解释为整数.