Ext 中字段的排序
//设定字段的排序方式
var subjectFields = [{ name: 'subjectid', type: 'int' }, { name: 'subjectname' }, { name: 'answera' }, { name: 'answerb' }, { name: 'answerc' }, { name: 'answerd' }, { name: 'answerright' }, { name: 'point', type: 'int' }, { name: 'percent',sortType: Ext.data.SortTypes.asFloat}];
/*
type:'int' 意思是按数字排序,如果你不设置,Ext会默认按字符串类型帮你排序.
以下是type的参数:
- type:String
- auto (默认,没有转换类型)
- string
- int
- float
- boolean
- date
但是如果使用type来排序,已经将这个字段的类型改变为type的类型, 如果你希望排序的同时不影响你原有字段的类型,
就可以用sortType.
sortType是一个Ext.data.SortTypes类型的元素
sortType有以下的参数:
- stripTagsRE (正则表达式的标签)
- asDate
- asFloat
- asInt
- asText
- asUCString
- asUCText
- none(默认排序)
在Ext自带的API里asDate,asFloat等参数都是方法,但是我发现调用的时候都用的是属性调用,大家有兴趣的话可以去看看官方的API
一般像百分比,美元之类的,其中有(%,$)等符号,但是这些字段是字符串类型的,如果你用type:int,Ext会自动剔除字段中的符号,这个时候你就可以用sortType来排序。
比如你有一个字段是'percent',字段的值是"12.22%,13.33%,2.22%",
{name:'percent'} 的显示结果是: 12.22% 13.33% 2.22% 这个是按字符串排序
{name:'percent',type:'int'} 的显示结果是: 2.22 12.22 13.33 自动剔除了字符中百分号
{ name: 'percent',sortType: Ext.data.SortTypes.asFloat} 的显示结果是 2.22%,12.22%,13.33% 正常效果
注意:asFloat不需要加括号
Ext虽然没有提供特定类型的排序方式,不过如果你把数据类型设置成int,或者string,date等对应的类型.它会自动帮你完成排序.