2012-03-22 69 views

回答

1

显然我假设返回的项目将与数据存储同步。它不会出现,必须手动更新使用:

store.setValue(item, field, value); 

我也希望命令相当于JPA合并。如果覆盖现有对象:

store.newItem(updatedVersionOfItem); 

和项目具有相同的唯一ID,它将覆盖类似于合并旧项目。

有谁知道是否有某种工厂会为每个字段调用store.setValue()的项目创建getter和setter?

我想这将是类似以下内容:

var wrappedItem = itemWrapperFactory.createWrapper(item, store); 
... 
//Some where in createWrapper(...), this is just the concept 
for (var itemField in itemFieldList) 
this.__defineGetter__(itemField[index] , function(val){ 
    store.setValue(item, itemField[index], val);  
}); 

我考虑写我自己作为一个整洁的建筑。

+0

如果您使用的是dojox.data.JsonRestore和dojox.grid.DataGrid,如果您已经将网格属性“store”设置为您的JRS,并将您的单元格设置为可编辑的,那么应该将变化明确地反映到当你从网格更新属性时,商店...你还有其他东西吗? – PEM 2012-03-23 08:41:39

+0

没错。我没有从网格更新它们,我只是使用从网格获得的信息检索它们。这是我的问题的一个来源。 – Greg 2012-03-25 19:01:44

1

通常情况下,store.save()应该足够了...如果不是,这意味着您的网格和商店之间存在问题。

+0

对于错误的东西你可能是正确的。我使用fetchitembyid()获取了一个项目,对其进行了修改,名为store.save(),并且它不会保留回服务。修改对象后isDirty()为false。 – Greg 2012-03-22 20:48:46

相关问题