-1
使用Flash Builder 4.6我想排序arrayCollection。該數組有2個屬性狀態和help_id。我想對數組進行排序,使其在頂部具有所有「打開」狀態,而不是全部「讀取」,而不是「現場」,而不是「完成」等等。我做了一個這樣做的函數,但我希望所有具有相同狀態的項目都不要按help_id屬性最高的第一個最低的最後一個進行排序。使用比較功能排序ArrayCollection
這是我的代碼排序狀態。
[Bindable]protected var myHelp:ArrayCollection = new ArrayCollection();
排序功能:
function sortFunction(a:Object, b:Object, array:Array = null):int
{
var status:Array = ["open", "read", "onsite","complete", "reopen", "closed"];
var aStatus:Number = status.indexOf(a.status);
var bStatus:Number = status.indexOf(b.status);
if(aStatus == -1 || bStatus == -1)
throw new Error("Invalid value for criticality ");
if(aStatus == bStatus)
return 0;
if(aStatus > bStatus)
return 1;
return -1;
}
var sort:Sort = new Sort();
sort.compareFunction = sortFunction;
myHelp.sort = sort;
myHelp.refresh();
任何幫助,將不勝感激。
如果您能告訴我們您的問題是什麼;以及爲什麼您的方法無法正常工作,我們會更適合幫助您解決問題。 – JeffryHouser
我告訴你的作品完美。我只想對相同的狀態進行第二次排序。如果有2個狀態關閉,我希望首先顯示具有較高help_id的那個(myHelp arrarCollection有兩個狀態,myHelp.status(string)和myHelp.help_id(int)。 – user1535213