我有一个可编辑的advanceddatagrid(可编辑列)。我提供arraycollection作为数据提供者。 (fname(字符串),lname(字符串),bdate(日期))。 (3栏)
我已经为fname,lname和bdate创建了VO。每当我编辑bdate并聚焦时,它将尝试将字符串值保存为Date并失败(这很明显)。默认情况下,编辑器将“ TextInput”视为项目编辑器,并将插入的日期另存为文本,并且该文本值被期望行为的VO拒绝。
我试图更新“ ItemEditEnd”事件处理程序中的值,但它不允许我这样做。
我还尝试对VO进行检查,但从未达到。 (我不确定为什么)
我必须严格将VO保留为Date而不是文本。
无论如何,我们可以将字符串转换为Date吗?还有其他地方吗?更换收藏品我有什么可以做的吗?
如果可以的话请帮助我。
谢谢,
最佳答案
为此,我将使用您建议的另一种方法。
<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中的date属性,而无需成为parsing dates manually。
建议您阅读:
http://www.adobe.com/devnet/flex/articles/itemeditors_pt1.html
http://livedocs.adobe.com/flex/3/html/help.html?content=cellrenderer_3.html
关于actionscript-3 - AdvancedDatagrid列Itemeditor和设置数据提供者值的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12856116/