我有一个带有可编辑属性的数据网格,并在列中显示日期信息。 日期以字符串格式存储在数据提供者中。 (那些日期来自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
你能帮我解决这个错误。
由于
答案 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"/>