Отображение даты в Spark DataGrid
У меня есть Datagrid, который получает свои данные из ArrayCollection модели "beans". Результаты 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 представлен как Number, это дизайнерское решение было принято, чтобы облегчить переход между клиентом AS и бэкэндом Java.
Я действительно хочу отобразить это число как строку даты (например, 1 февраля 2011 года или что-то в этом роде), но, поскольку это число, оно просто отображается как метка времени в сетке данных... например.
Результаты |Требуемая дата
бхххххх | 12389712987
blahhhhh2 | 13242342349
Есть идеи?
2 ответа
Использовать 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>
Вы можете просто сделать новую дату (_dataRequired) в labelFunction, а затем отформатировать ее с помощью dateformatter.
ура