在Flex中有什么方法我们可以根据字符串对arraycollection进行排序.
我有一个数据提供者,其字符串如"严重","高","中","低",我需要按照这样的方式对其进行排序,我需要将关键显示在顶部,接下来是高,中,低.
有人能告诉我任何逻辑.
谢谢Kumar
Ama*_*osh 23
ArrayCollection是ListCollectionView具有sort 属性的子类.本Sort类有一个compareFunction 属性,你可以用它来定义自定义排序功能.
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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13859 次 |
| 最近记录: |