Flex中如何对DataGrid的日期列进行排序的例子
By Minidxer | July 21, 2008
日期有很多格式,比如可以使YYYY-MM-DD,也可以使MM-DD-YYYY,如果是后一种的话,那么直接将其作为字符串来排序是不可以的。接下来的例子就演示了Flex中如何对DataGrid的日期列进行排序。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- import mx.utils.ObjectUtil;
- 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 = new Date(Date.parse(itemA.dob));
- var dateB:Date = new Date(Date.parse(itemB.dob));
- return ObjectUtil.dateCompare(dateA, dateB);
- }
- private function date_dataTipFunc(item:Object):String {
- return dateFormatter.format(item.dob);
- }
- ]]>
- </mx:Script>
- <mx:ArrayCollection id="arrColl">
- <mx:source>
- <mx:Array>
- <mx:Object name="User A" dob="04/14/1980" />
- <mx:Object name="User B" dob="01/02/1975" />
- <mx:Object name="User C" dob="12/30/1977" />
- <mx:Object name="User D" dob="10/27/1968" />
- </mx:Array>
- </mx:source>
- </mx:ArrayCollection>
- <mx:DateFormatter id="dateFormatter" formatString="MMMM D, YYYY" />
- <mx:DataGrid id="dataGrid" dataProvider="{arrColl}">
- <mx:columns>
- <mx:DataGridColumn dataField="name"
- headerText="Name:" />
- <mx:DataGridColumn dataField="dob"
- headerText="Date of birth:"
- sortCompareFunction="date_sortCompareFunc"
- showDataTips="true"
- dataTipFunction="date_dataTipFunc" />
- </mx:columns>
- </mx:DataGrid>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
Tags: dataTipFunction, dateCompare, ObjectUtil, showDataTips, sortCompareFunction, 排序