【问题标题】:how can i sort dd/mm/yy date format in datagrid using flex?如何使用 flex 在数据网格中对 dd/mm/yy 日期格式进行排序?
【发布时间】:2011-04-18 06:54:02
【问题描述】:

我使用了数组集合排序方法,如下所示。但仍然排序错误。使用 flex3 进行日期排序的任何其他解决方案

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

【问题讨论】:

    标签: java apache-flex actionscript-3 datagrid


    【解决方案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;
    }
    

    【讨论】:

    • 私有函数 date_sortCompareFunc(itemA:Object, itemB:Object):int { var dateA:Date = new Date(Date.parse(itemA.enddatetime)); var dateB:Date = new Date(Date.parse(itemB.enddatetime));返回 ObjectUtil.dateCompare(dateA, dateB); }
    • 在上面的 enddatetime 是数据网格中的数据字段,我使用 sortcompareFunction 比较(dd/mm/yy)格式字符串,但没有排序。你可以证明我
    • 我使用 Date.valueOf() 因为它更简单。为什么要先将其转换为字符串才能使用 Date.parse()? Date.valueOf() 给你毫秒。
    • 我也使用了 Date.valueOf(),但显示错误 Mr.Robusto,谢谢您的回复
    • 我添加了类似 sortCompareFunction 的函数。 enddatetime 格式为 dd/mm/yy 。对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    相关资源
    最近更新 更多