我是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中做到这一点?
提前致谢..
您可以将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