这里有一些复杂的排序在我的应用程序中。
现在我的数据对象如下(称为pCList
):
Object[0]:
Id: 1
comp: Test
med: xyz
condition: valueObject.Condition
Object[1]:
Id: 2
comp: Test1
med: pqr
condition: valueObject.Condition
Object[2]:
Id: 3
comp: Test
med: abc
condition: valueObject.Condition
condition VO
拥有以下数据:
condition data1:
conId: 001
cond: abcds
condition data2:
conId: 001
cond: trdfd
condition data3:
conId: 001
cond: dsdsds
对于正常排序,我将按以下方式进行;
var sort:ISort = new Sort();
var sortField:ISortField = new SortField("med");
sort.fields = [sortField];
if(pCList != null)
{
pCList.sort = sort;
pCList.refresh();
}
其中pcList
按医学排序。
但现在,我想按condition.cond
排序
首先来的是cond
值abcds
然后dsdsds
然后是trdfd等等......
我尝试过使用:
var sort:ISort = new Sort();
var sortField:ISortField = new SortField("condition.cond");
sort.fields = [sortField];
但没有成功。任何帮助是极大的赞赏。
答案 0 :(得分:1)
ISort
有一个属性compareFunction
,可用于自定义排序。见下面的例子。
var sort:ISort = new Sort();
sort.compareFunction = function(a:Object, b:Object, fields:Array = null):int {
var conditionA:String = a.Condition.cond;
var conditionB:String = b.Condition.cond;
if (conditionA < conditionB) {
return -1;
} else if (conditionA > conditionB) {
return 1;
} else {
return 0;
}
};