actionscript-3 - AdvancedDatagrid 列 Itemeditor 和设置数据提供者值的问题

标签 actionscript-3 apache-flex air flex4 flex3

我有一个可编辑的高级数据网格(可编辑列)。我提供 arraycollection 作为数据提供者。 (fname(字符串),lname(字符串),bdate(日期))。 (3 列)

我已经为 fname、lname 和 bdate 创建了 VO。每当我编辑 bdate 并 focus out 时,它都会尝试将字符串值保存为 Date 并失败(这很明显)。默认情况下,编辑器将“TextInput”视为一个项目编辑器,并将插入的日期保存为文本,并且该文本值被 VO 拒绝,这是预期的行为。

  1. 我试图更新“ItemEditEnd”事件处理程序中的值,但它不允许我这样做。
  2. 我也试图在 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/

相关文章:

flash - 用于 ActionScript 的 Lint 工具?

javascript - Adobe AIR、HTML/Javascript 构建数字标牌应用程序的适用性

ios - Heyzap Fyber 集成 Adob​​e Air

actionscript-3 - 检测互联网连接

flash - Flex - ExternalInterface.Call() 总是返回 'Undefined'

actionscript-3 - 查找数组中给定的匹配项

actionscript-3 - 将 AS2 swf 加载到 AS3 swf 时出现问题

apache-flex - 在 Flash Player 中播放来自 ByteArray 的 FLV

apache-flex - Flex 从切换按钮栏中删除按钮边框

xml - E4X:抓取带有命名空间的节点?