Flex Advance datagrid日期列排序问题

时间:2010-02-01 09:17:40

标签: flex

我正在尝试使用以下日期对ArrayCollection进行排序,并获得意外结果。

14-Apr-1980
01-Feb-1975
30-Dec-1977
27-Oct-1968

我正在使用以下代码进行排序,

private function sortDate(obj1:Object, obj2:Object):int
{
    var d1:Number = (new Date(Date.parse(obj1.date))).getTime();
    var d2:Number = (new Date(Date.parse(obj2.date))).getTime();
    if(d1 < d2) 
    {
        return -1;
    } 
    else if(d1 == d2) 
    {
        return 0;
    }
    return 1;
}

它被称为,

<mx:AdvancedDataGridColumn dataField="dob"
headerText="Date of birth:"
sortCompareFunction="sortDate"
dataTipFunction="dateFormat" />
</mx:columns>

结果即将到来,

27-Oct-1968
01-Feb-1975
14-Apr-1980
30-Dec-1977

我错过了什么?

(注意:AdvancedDataGrid中的日期格式为DD-MMM-YYYY

1 个答案:

答案 0 :(得分:0)

将日期分隔符从连字符(-)更改为斜杠(/)或space。并确保sortableColumns的{​​{1}}属性为AdvancedDataGrid

来自Date.parse()方法的livedocs页面。

  

年月日可以用正斜杠(true)或空格分隔,但绝不能用短划线(/)分隔。