将可编辑数据网格中的更改写回本地数据存储 - Adob​​e Air / Flex

时间:2010-10-28 10:34:51

标签: flex flash air adobe salesforce

我使用Adobe Air从SalesForce获取数据,并将其显示在数据网格中。

我正在使用查询来获取数据,然后将其放入绑定到数据网格的数组集合中,这样可以正常工作并显示数据。

我已经使datagrid可编辑,并且我能够更改datagrid中的值,但是我找不到如何将更改保存到本地数据库。

我使用以下代码: -

protected function VisitReportGrid_changeHandler(event:ListEvent):void {                 app.wrapper.save(VisitReportGridProvider)             }

但是当我尝试编译它时会出现以下错误: -

1067:mx.collections类型值的隐式强制:ArrayCollection为不相关的类型mx.data:IManaged。

显然我做错了,但我找不到正确的语法。

提前感谢您的帮助

罗伊

2 个答案:

答案 0 :(得分:1)

此代码不足以了解实际问题所在 需要知道什么是VisitReportGridProvider,什么是wrapper.save()方法。

评论后

**

<强> F3DesktopWrapper.save():

          public function save(item:IManaged):void

将指定的Managed对象保存到本地数据库。您必须显式调用syncWithServer()以更新salesforce服务器上的数据。但是,不要经常调用syncWithServer()(批量保存调用),因为这可能会耗尽您的分配API使用率。如果该项目存在冲突,则冲突将得到解决。

参数:

item:IManaged - 要创建或更新的托管对象。

您传递的参数类型ArrayCollection未实现IManaged接口。

答案 1 :(得分:0)

您需要传递已更改为save函数的ArrayCollection中的项。像:

acc.fieldCollection.updateObject(new AsyncResponder(function(o:Object, t:Object):void {
  app.wrapper.save(o as Account);
}, function(e:Object):void {

}));