我有一个按字段分组的分组网格,假设该组是“团队”。然后该球队中的所有球员都有一个号码和其他字段,例如姓名、契约(Contract)开始和结束日期。
在球队中,我可以按球员姓名的字母顺序以及日期进行排序。排序适用于这些字段。
问题是当我尝试按玩家编号排序时,它按以下方式排序。
假设我们有 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 分组 View 。网格存储的数据来自java对象,所有字段都是字符串。
谢谢!
最佳答案
字符串在 js 中总是这样排序。在控制台中尝试 "2"> "10"
。您必须在模型或商店上使用数字类型字段。像这样:
fields: [
{name: '...', type: 'int'}
]
在进行数组排序函数时,先使用parseInt(...)
转换为数字。
关于javascript - ExtJS 分组网格排序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27252687/