2009-10-21 30 views
10

Có cách nào trong Flex trong đó chúng ta có thể sắp xếp mảng theo chuỗi.Sắp xếp một ArrayCollection trong Flex

Tôi có một nhà cung cấp dữ liệu với các chuỗi như "Quan trọng" "Cao" "Trung bình" "Thấp" nơi tôi cần sắp xếp theo cách mà tôi cần Critical được hiển thị ở trên cùng và cao tiếp theo và Thấp theo sau.

Ai đó có thể cho tôi biết bất kỳ logic nào.

Cảm ơn, Kumar

Trả lời

23

ArrayCollection là một lớp con của ListCollectionView mà có một sortproperty. Lớp học Sort có một số compareFunctionproperty mà bạn có thể sử dụng để xác định các chức năng sắp xếp tùy chỉnh.

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

Nó hoạt động tốt amar nhờ – skumarvarma

+1

chức năng nên trở int – zinovii

+0

@zdmytriv cố định; cảm ơn :) – Amarghosh

Các vấn đề liên quan