2

dojo.data.ObjectStoreとdojo.store.Cacheを介してdojo.store.JsonRestに接続されたDojoDatagridを使用しています。キャッシュストアに接続されたdojo.store.Memoryもあります。

データグリッドはドロップダウンで編集できます。初めて値を変更すると、すべてがうまくいくように見えますが、同じ行を2回編集すると、編集はJsonRestとサーバーに渡されますが、グリッド自体は古い値の表示に戻ります。

これは既知のバグですか?回避策のアイデアはありますか?

4

2 に答える 2

0

データをサーバーに保存した後、グリッド更新行を作成できます。コールバックは次のようになります。


function onApplyCellEditHandler(inGrid, inValue, inRowIndex, inFieldIndex) {
    inGrid.yourStore.save();
    inGrid.updateRow(inRowIndex);
}

それが役に立てば幸い

于 2012-02-01T11:17:58.967 に答える
0

コードを見ずに、変更が永続化されない理由を言うのは難しいです。DataGridは、変更をデータストアに書き戻すために統一されたデータインターフェイスに依存していることに注意してください。セルを編集すると、変更はDojoデータアダプターのsetValue()メソッドを介して書き戻されます。保存されていない変更は、save()メソッドを呼び出すまでアダプターに保存されます。dataStore.save(); save()が呼び出されると、すべての変更がput()呼び出しを介してオブジェクトストアに配信されます。覚えておくべきことは、グリッドはストア内のデータを表示/反映しているだけであるということです。そのため、グリッド内のセルの編集は、基になるストアで変更が永続的に行われない限り持続しません。

于 2012-02-02T01:43:46.443 に答える