2012-03-22 92 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