2010-09-28 40 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

相关问题