我有一个按字段分组的分组网格,假设该组是“团队”。然后该团队中的所有玩家都有一个数字和其他字段,如姓名,合同开始和结束日期。
在团队中,我可以按照玩家姓名的字母顺序排序,也可以按日期排序。排序适用于这些领域。
问题是,当我尝试按玩家编号排序时,它按以下方式排序。
假设我们有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对象,所有字段都是字符串。
谢谢!
答案 0 :(得分:1)
字符串总是以这种方式在js中排序。在控制台中尝试"2" > "10"
。您必须在模型或商店上使用数字类型字段。像这样:
fields: [
{name: '...', type: 'int'}
]
执行数组排序功能时,请先使用parseInt(...)
转换为数字。