如何在datagrid中添加日期字段

时间:2013-01-20 10:56:30

标签: actionscript-3 flex flex3 flash-builder

我有一个带有可编辑属性的数据网格,并在列中显示日期信息。 日期以字符串格式存储在数据提供者中。 (那些日期来自httpservice的数据库)。 但是我想在datagrid列上添加一个itemEditor。 为此,我尝试

 <mx:DataGridColumn dataField="echElemDate"  headerText="MyHeaderDate" 
     headerStyleName="dgHeader" fontWeight="normal" 
      itemEditor="mx.controls.DateField" editorDataField="text"/>

但是当我点击此单元格时,会出现错误:

Type Coercion failed: cannot convert "29/07/2015" to Date

你能帮我解决这个错误。

由于

4 个答案:

答案 0 :(得分:1)

使用editorDataField =“selectedDate”。因为当编辑结束时,它会将DateField [editorDataField]转换为data [dataField]

答案 1 :(得分:0)

尝试更改headerText = DateString并确保插入mx:datagrid editable =“true”

答案 2 :(得分:0)

如果您的数据提供者内部有AS对象且具有可控制的AS类,最简单的方法是使用DateField在类中添加一个getter和setter,并使用转换字符串&lt;&gt;日期,如下所示:< / p>

public function get echElemDateAsDate():Date {
    return DateField.stringToDate(this.echElemDate, "DD/MM/YYYY");
}

public function set echElemDateAsDate(value:Date) {
     this.echElemDate = DateField.dateToString(value, "DD/MM/YYYY");
}

如果你没有对班级的控制权,那么我认为你必须做一个自定义项目编辑器

答案 3 :(得分:0)

@ huang.xinghui给了你有用的建议,你试过这段代码吗?我重现了你的情况,这有所帮助。

<mx:DataGridColumn dataField="echElemDate"  headerText="MyHeaderDate" 
                               headerStyleName="dgHeader" fontWeight="normal" 
                               itemEditor="mx.controls.DateField" editorDataField="selectedDate"/>