ExtJS分组网格排序错误

时间:2014-12-02 15:13:35

标签: javascript sorting extjs extjs3 grid-layout

我有一个按字段分组的分组网格,假设该组是“团队”。然后该团队中的所有玩家都有一个数字和其他字段,如姓名,合同开始和结束日期。

在团队中,我可以按照玩家姓名的字母顺序排序,也可以按日期排序。排序适用于这些领域。

问题是,当我尝试按玩家编号排序时,它按以下方式排序。

假设我们有1到30名球员。

我的网格中的升序将是:

1 10 11 12 13 14 15 16 17 18 19 2 20 21 etc.

显然由于某种原因,它只比较了第一个数字,但在青少年之间,它知道哪些是第一个数字(?)。

我希望数字按逻辑升序排序:

1 2 3 4 5 6 7 8 9 10 11 12 ... 20 21 22 ... 29 30

我在网格中使用ExtJS 3.3.1分组视图。网格存储的数据来自java对象,所有字段都是字符串。

谢谢!

1 个答案:

答案 0 :(得分:1)

字符串总是以这种方式在js中排序。在控制台中尝试"2" > "10"。您必须在模型或商店上使用数字类型字段。像这样:

fields: [
    {name: '...', type: 'int'}
]

执行数组排序功能时,请先使用parseInt(...)转换为数字。