Отображение даты в 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.

ура

Другие вопросы по тегам