我有一个Datagrid,它从模型“beans”的ArrayCollection中获取数据。 ArrayCollection 结果是结果
的列表 <s:DataGrid dataProvider="{outcomes}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="outcome" headerText="Outcome" width="120"/>
<s:GridColumn dataField="dateRequired" headerText="Date Req" width="130"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
Outcome.as
[Bindable]
public class ASPersonalOutcomeSummary {
public var _outcome:String;
public var _dateRequired:Number;
}
问题是 dateRequired 表示为数字,这个设计决策是为了让它更容易在AS客户端和Java后端之间传递。
我真的想将此数字显示为日期字符串(例如2011年2月1日或类似的东西),但因为它是一个数字,它只是显示为数据网格中的时间戳...例如。
结果|需要日期
blahhhhh2 | 13242342349
有什么想法吗?
答案 0 :(得分:4)
使用labelFunction
,如下所示:
private function dateLabelFunction(item: ASPersonalOutcomeSummary, column:GridColumn):String
{
var timeStamp:Number = item. _dateRequired;
var date:Date = new Date(timeStamp);
return new DateFormatter().format(date);
}
然后:
<s:DataGrid dataProvider="{outcomes}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="outcome" headerText="Outcome" width="120"/>
<s:GridColumn labelFunction="dateLabelFunction" headerText="Date Req" width="130"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
答案 1 :(得分:2)
您可以在labelFunction中执行新的Date(_dataRequired),然后使用dateformatter对其进行格式化。
干杯