jqgrid对不同列上的本地数据进行自定义排序

1 sorting local jqgrid

我有一个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)

Ole*_*leg 6

如果使用远程数据(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值将被解释为整数.