Adob​​e Flex日期

问题描述:

嗨我在日期有问题。Adob​​e Flex日期

我有一个自定义dateChooser。

在dateChooser组件中,突出显示了一些假期,并同时在容器中列出了假期。

问题是我在容器中显示的日期没有按升序排列,有些人请帮忙。

链路用于与视图源演示应用程序启用

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

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

+0

我看不到您的演示应用程序中提到的容器。我们如何看到你的排序不能正常工作的例子? – 2011-02-01 16:14:24

+0

您好,请滚动浏览日期选择控件。你会看到容器,因为没有假期2月容器没有显示。 – Arulmurugan 2011-02-01 18:02:39

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

首先,我在您的应用程序中看不到容器。

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

parse(date:String):Number 

然后,你可以通过一些逻辑排序。

BR 弗兰克

+0

您好请滚动浏览日期选择器控制大。你会看到容器,因为没有假期2月容器没有显示。 – Arulmurugan 2011-02-01 17:40:02

你们是不是要进行排序在 'holidayView' VBOX的日期? 你不能比较和排序两个日期。您可以使用下面给出的日期比较方法(在网上搜索找到一个更好的)。如果在VBOX显示假期的控制是一个DataGrid,在标签属性使用

<mx:DataGridColumn 
     headerText="Created Date" 
     date="createdDt" 
     sortCompareFunction="date_sortCompareFunc"> 
</mx:DataGridColumn> 

将导致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)); 
     }