我使用Adobe Air从SalesForce获取数据,并将其显示在数据网格中。
我正在使用查询来获取数据,然后将其放入绑定到数据网格的数组集合中,这样可以正常工作并显示数据。
我已经使datagrid可编辑,并且我能够更改datagrid中的值,但是我找不到如何将更改保存到本地数据库。
我使用以下代码: -
protected function VisitReportGrid_changeHandler(event:ListEvent):void { app.wrapper.save(VisitReportGridProvider) }
但是当我尝试编译它时会出现以下错误: -
1067:mx.collections类型值的隐式强制:ArrayCollection为不相关的类型mx.data:IManaged。
显然我做错了,但我找不到正确的语法。
提前感谢您的帮助
罗伊
答案 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 {
}));