2014-01-16 61 views
0

我有一個數據庫的查詢作爲一個ArrayCollection的對象返回。我想按字母順序排序對象的一個​​屬性。從db.queryResults()回來,對象屬性的名稱是DmvValue3。我如何對此進行排序。以下是我的代碼和ArrayCollection中屬性的屏幕截圖。Flex移動動作腳本如何按字母順序排序一個對象的一部分arrayCollection

 private function sortCollection(list:ArrayCollection):ArrayCollection 
     { 
      var sort:ISort = new Sort(); 
      var sortField:SortField = new SortField(null, true); 
      sortField.setStyle("locale", "en-US"); 
      sort.fields = [sortField]; 
      list.sort = sort; 
      list.refresh(); 
      return list; 
     } 

enter image description here

+0

我沒有看到你打電話list.refresh()應用排序後。 –

+0

基本上我需要按字母順序排序而不是第一個對象的每個對象的第三部分或屬性。 – yams

+0

刷新與排序對象的某個屬性無關。 – yams

回答

1

這是未經測試的代碼,但它應該讓你的正確道路上。

private function sortCollection(list:ArrayCollection):ArrayCollection { 
    var sort:ISort = new Sort(); 
    var sortField:SortField = new SortField(); 
    sortField.name = "DmvValue3"; 
    sortField.caseInsensitive = true; 
    sortField.numeric = true; 
    sortField.descending = true; 

    sort.fields = [sortField]; 

    list.sort = sort; 
    list.refresh(); 

    return list; 
} 

[更新]

private function sortCollection(list:ArrayCollection):ArrayCollection { 
     var sort:ISort = new Sort(); 
     var sortField:SortField = new SortField(); 
     //sortField.name = "DmvValue3"; 
     //sortField.caseInsensitive = true; 
     ////sortField.numeric = true; 
     //sortField.descending = true; 

     //sort.fields = [sortField]; 
     sort.compareFunction = myCompare; 
     list.sort = sort; 
     list.refresh(); 

     return list; 
    } 
    public function myCompare(a:Object, b:Object, fields:Array = null):int { 
     if(a["DmvValue3"] < b["DmvValue3"]) 
      return -1; // -1, if a should appear before b in the sorted sequence 
     if(a["DmvValue3"] == b["DmvValue3"]) 
      return 0; // 0, if a equals b 
     if(a["DmvValue3"] > b["DmvValue3"]) 
      return 1; // 1, if a should appear after b in the sorted sequence 
    } 
+0

這不排序列表不幸的。 – yams

+0

您需要編輯您的問題並在數組集合的一個元素內發佈一個項目的示例。您發佈數據的屏幕截圖不會告訴我數據對象是如何表示的。基本上我需要你向我展示數據結構。 –

+0

好吧,這是Arraycollection的第一個元素。 – yams