排序Flex中一个ArrayCollection(Sorting an ArrayCollectio

2019-08-31 07:06发布

是否有任何Flex的方式在这里我们可以进行排序基于字符串的ArrayCollection。

我有一个像“批判”“高”“中等”“低”凡在我需要它以这样的方式,我需要的关键在顶部和下一个由高到低的显示排序串的数据提供程序,中,低如下。

有人可以让我知道任何逻辑。

谢谢,库马尔

Answer 1:

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();


文章来源: Sorting an ArrayCollection in Flex
标签: flex