我有一个可编辑的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/

10-11 16:33