Adobe Flex日期

时间:2011-02-01 13:32:44

标签: flex actionscript date adobe

嗨,我在约会时遇到了问题。

我有一个自定义dateChooser。

在dateChooser组件中突出显示某些假日,同时在容器中列出假期。

问题是我在容器中显示的日期不按递增顺序可以请一些人帮忙。

启用了视图源的演示应用程序的链接

http://125.22.254.206/clients/flexdemos/calendardemo/calendardemo.html

所述逻​​辑在custome文件夹下的ExtendedDateChooser.as中实现。

2 个答案:

答案 0 :(得分:1)

您是否尝试在'holidayView'vbox中对日期进行排序? 你不能比较和排序两个日期。您可以使用下面给出的日期比较方法(搜索网络以找到更好的方法)。如果vbox中显示假期的控件是数据网格,请使用

<mx:DataGridColumn
      headerText="Created Date"
      date="createdDt"
      sortCompareFunction="date_sortCompareFunc">
</mx:DataGridColumn>
tag属性中的

将导致sortedDate

private function date_sortCompareFunc(itemA:Object, itemB:Object):int
       {
           /* Date.parse() returns an int, but
              ObjectUtil.dateCompare() expects two
              Date objects, so convert String to
            int to Date. */

           var dateA:Date=isoToDate(itemA.createdDt);
           var dateB:Date=isoToDate(itemB.createdDt);
           return ObjectUtil.dateCompare(dateB, dateA);
       }

 private function isoToDate(value:String):Date {
            var dateStr:String = value;
            dateStr = dateStr.replace(/\-/g, "/");
            dateStr = dateStr.replace("T", " ");
            dateStr = dateStr.replace("Z", " GMT-0000");
            return new Date(Date.parse(dateStr));
        }

答案 1 :(得分:0)

我想,你不能按日期排序。

首先,我无法在您的应用中看到容器。

我的方法是将自1970年以来的日期解析为毫秒

parse(date:String):Number

然后你可以通过一些逻辑对它进行排序。

BR 弗兰克