Ext js 5.0.1列自定义排序

时间:2018-09-18 13:17:13

标签: javascript extjs gridpanel

我是extjs框架的新手,正在寻找一种向面板中的列添加自定义排序功能的方法。我浏览了一些帖子,似乎随着时间的流逝,此功能已更改了几次。

在5.0.1文档中,我发现sortType配置可用于将数据转换为可比较的值。

但是在我的情况下,将所有数据转换为值然后进行排序可能是一个耗时的过程,并且我一直在寻找使用类似doSort早期similar to this example配置中使用的功能的功能;通过基本上配置如下功能:

function customSorter(state){
    var ds = this.up('grid').getStore();
    var field = this.getSortParam();
    ds.sort({
        property: field,
        direction: state,
        sorterFn: function(v1,v2){
             //some custom logic
        }
    });
}

编辑1: 我希望仅将此功能用于一列,其他列是标准数据类型,默认情况下,这些功能可以很好地进行排序。

有什么想法在5.0.1中做到这一点吗?

先谢谢了。

1 个答案:

答案 0 :(得分:0)

您可以将Ext.util.Sorter数组传递给商店的sort方法。 Ext.util.Sorter类具有sorterFn配置。

参考:

https://docs.sencha.com/extjs/5.0.1/api/Ext.util.Sorter.html https://docs.sencha.com/extjs/5.0.1/api/Ext.data.Store.html#method-sort

如果要对特定列进行自定义排序,可以在与列对应的字段上使用sortType配置,请参见https://docs.sencha.com/extjs/5.0.1/api/Ext.data.field.Field.html#cfg-sortType