2012-03-22 16 views

答えて

1

は、どうやら私は戻された項目は、データストアと同期されることを想定していました。それはそうではなく、手動で更新する必要があります:

store.setValue(item, field, value); 

私はJPAマージに相当するコマンドも期待していました。あなたが前にオブジェクトを上書きした場合:

store.newItem(updatedVersionOfItem); 

、アイテムが同じ一意のIDを持っている、それがマージに似た古い項目が上書きされます。そこにあれば

誰もがフィールドごとstore.setValue()を呼び出します項目についてゲッターとセッターを作成する工場のいくつかの並べ替えを知っていますか?私は建築のそのきちんとした作品として、私自身を作成することを検討しています

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

あなたは...あなたのJRSこと、および編集可能としてあなたの細胞を設定しdojox.data.JsonRestoreとdojox.grid.DataGrid、セットアップをしている場合、グリッドのプロパティ「ストア」を使用している場合、変更は間違いなくに反映されるべきであるにグリッドからプロパティを更新するときのストア...あなたは何か他のものを持っていますか? – PEM

+0

右。私はグリッドからそれらを更新していない、私はちょうど私がグリッドから得た情報を使用してそれらを取得していた。それが私の問題の一つの原因でした。 – Greg

1

通常、store.saveは()に十分でなければなりません...ない場合、それはあなたがあなたのグリッドと店舗間の問題があることを意味します。

+0

おそらく間違っていると思われます。私はfetchitembyid()を使ってアイテムを取り出し、store.save()という名前のアイテムを修正しました。 isDirty()はオブジェクトを変更した後はfalseです。 – Greg

関連する問題