2010-09-28 66 views
1

我用下面的數組收集排序方法。但仍然錯誤地排序。使用數據排序任何其他解決方案flex3如何使用flex在datagrid中對dd/mm/yy日期格式進行排序?

public function SortingDate(ArrColl : ArrayCollection, field : String) : void{ 
      var sortA:Sort = new Sort(); 
      sortA.fields=[new SortField(field,false,true,null)]; 
      ArrColl.sort=sortA; 
      ArrColl.refresh(); 
     } 

它的排序,但一天只有分揀像

31/08/10 
30/09/10 
28/07/10 

回答

1

你需要指定的DataGridColumn一個sortCompareFunction你正在使用的日期。

它看起來像這樣:

dateColumnSortCompareFunc(obj1:Object, obj2:Object) : int { 
    // here you translate your object into things that can be evaluated 
    // and return 1 if obj1 > obj2, 0 if they are equal, and -1 if obj1 < obj2 
    // for example 
    var d1:Date = new Date(obj1); 
    var d2:Date = new Date(obj2); 
    return (d1.valueOf() > d2.valueOf()) ? 1 : (d1.valueOf() < d2.valueOf()) ? -1 : 0; 
} 
+0

私有函數date_sortCompareFunc(意達:對象,itemB:對象):INT {VAR dateA:日期=新的日期(Date.parse(itemA.enddatetime)); var dateB:Date = new Date(Date.parse(itemB.enddatetime)); return ObjectUtil.dateCompare(dateA,dateB); } – 2010-09-28 13:16:18

+0

在上面enddatetime是datagrid中的數據字段我用sortcompareFunction比較(dd/mm/yy)格式字符串但不排序。請您證明我 – 2010-09-28 13:18:47

+0

我使用Date.valueOf(),因爲它更簡單。爲什麼首先使用Date.parse()將其轉換爲String? Date.valueOf()給你毫秒。 – Robusto 2010-09-28 13:56:50

相關問題