【问题标题】:Ext js 5.0.1 column custom sortingExt js 5.0.1 列自定义排序
【发布时间】:2019-02-22 13:05:24
【问题描述】:

我是 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: 我希望仅将此函数用于一列,其他列是标准数据类型,默认情况下排序工作正常。 p>

任何想法如何在 5.0.1 中执行此操作?

提前谢谢..

【问题讨论】:

  • 正如你提到的fiddle。所以你可以使用相同的
  • @NarendraJadhav 这个小提琴使用不同版本的 ext,当我尝试使用所需版本时,它失败了。尝试一次,将右上角的版本更改为 5.0.1,然后尝试运行 fiddle。

标签: javascript extjs gridpanel


【解决方案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

【讨论】:

  • 我查看了这些文档,但我正在寻找的是其中一列的比较器功能。其他列工作正常,我不希望所有字段都使用新的排序器功能。对不起,如果问题不清楚,将编辑此
  • 你可以使用docs.sencha.com/extjs/5.0.1/api/…,我已经编辑了我的答案。
  • 谢谢,但该链接已经存在于问题中,我之前发现过。但是这样做的问题是将字段的所有数据转换为数值是一个大的计算和缓慢的过程。这就是为什么我一直在寻找一种方法来使用一个接受 2 个参数并根据比较返回 -1.0,1 的函数,这应该是一个更快的活动。有什么想法吗?
  • 啊抱歉,我没有看到链接已经在您的问题中。我不知道该怎么做:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多