我有一个可编辑的高级数据网格(可编辑列)。我提供 arraycollection 作为数据提供者。 (fname(字符串),lname(字符串),bdate(日期))。 (3 列)
我已经为 fname、lname 和 bdate 创建了 VO。每当我编辑 bdate 并 focus out 时,它都会尝试将字符串值保存为 Date 并失败(这很明显)。默认情况下,编辑器将“TextInput”视为一个项目编辑器,并将插入的日期保存为文本,并且该文本值被 VO 拒绝,这是预期的行为。
- 我试图更新“ItemEditEnd”事件处理程序中的值,但它不允许我这样做。
- 我也试图在 VO 进行检查,但它从未到达那里。 (我不确定为什么)
我必须严格将 VO 保留为日期而不是文本。
无论如何我们可以将字符串转换为日期吗?还有别的地方吗?在收集更改时我能做些什么吗?
如果可能,请帮助我。
谢谢,
最佳答案
为此,我会使用另一种方法,而不是您建议的方法。
<s:GridColumn headerText="Birth Date" dataField="bdate" rendererIsEditable="true">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer>
<mx:DateField selectedDate="@{data.bdate}"/>
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
在此示例中,我使用 ItemRenderer,它也将用作 ItemEditor。 在这种情况下,它是一个 DateField,它将能够处理您在 VO 中拥有的日期属性,而无需 parsing dates manually。 .
建议您阅读:
关于actionscript-3 - AdvancedDatagrid 列 Itemeditor 和设置数据提供者值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12856116/