在Flex中排序ArrayCollection [英] Sorting an ArrayCollection in Flex
本文介绍了在Flex中排序ArrayCollection的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个类似CriticalHigh的数据提供者Medium 低
在哪里我需要排序的方式,我需要关键将显示在上面和下一个高,中,低如下。
谢谢,
Kumar
解决ArrayCollection 是
<$ p $ (
$ b //假设'level'是变量的名字在每个对象
//中保存Critical,High等值
var levels:Array = [Low,Medium,High,Critical];
var aLevel:Number = levels.indexOf(a.level);
var bLevel:Number = levels.indexOf(b.level);
if(aLevel == -1 || bLevel == -1)
throw new错误(Critical value for criticality);
if(aLevel == bLevel)
return 0;
if(aLevel> bLevel)
return 1;
返回-1;
var sort:Sort = new Sort();
sort.compareFunction = sortFunction;
arrayCollection.sort = sort;
arrayCollection.refresh();
ListCollectionView
的一个子类,它有一个 sort
属性。 Sort
类有一个 compareFunction
属性来定义自定义排序功能。 <$ p $ (
$ b //假设'level'是变量的名字在每个对象
//中保存Critical,High等值
var levels:Array = [Low,Medium,High,Critical];
var aLevel:Number = levels.indexOf(a.level);
var bLevel:Number = levels.indexOf(b.level);
if(aLevel == -1 || bLevel == -1)
throw new错误(Critical value for criticality);
if(aLevel == bLevel)
return 0;
if(aLevel> bLevel)
return 1;
返回-1;
var sort:Sort = new Sort();
sort.compareFunction = sortFunction;
arrayCollection.sort = sort;
arrayCollection.refresh();
Is there any way in Flex where in we can sort an arraycollection based on strings .
I have a dataprovider with strings like "Critical" "High" "Medium" "Low" where in I need to sort it in such a way that I need Critical to be displayed on the top and next High , Medium and Low follows.
Can somebody let me know any logic .
Thanks, Kumar
解决方案
ArrayCollection
is a subclass of ListCollectionView
that has a sort
property. The Sort
class has a compareFunction
property that you can use to define custom sort functions.
private function sortFunction(a:Object, b:Object, array:Array = null):int
{
//assuming that 'level' is the name of the variable in each object
//that holds values like "Critical", "High" etc
var levels:Array = ["Low", "Medium", "High", "Critical"];
var aLevel:Number = levels.indexOf(a.level);
var bLevel:Number = levels.indexOf(b.level);
if(aLevel == -1 || bLevel == -1)
throw new Error("Invalid value for criticality ");
if(aLevel == bLevel)
return 0;
if(aLevel > bLevel)
return 1;
return -1;
}
var sort:Sort = new Sort();
sort.compareFunction = sortFunction;
arrayCollection.sort = sort;
arrayCollection.refresh();
这篇关于在Flex中排序ArrayCollection的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文