dojo-dgrid で編集された行を元に戻す/リセットする方法はありますか?
ダーティ アイテムをクリアし、グリッド全体をリフレッシュする refresh メソッドを呼び出す grid.revert() を確認できます。このグリッド全体のリフレッシュは必要ありません。
アクション列の元に戻す/キャンセル アイコンをクリックすると、その単一の編集された行のみをリセット/元に戻すことができますか (こことここで述べたように、グリッドの最後の列になります)
ストアをObservableでラップしている場合は、 notify()を使用して単一の行を更新できます。
たとえば、[元に戻す/キャンセル] ボタンのonClickイベントに対して次のコードを作成できます。
renderCell: function(object, data, cell){
var btnRevert = new Button({
label: "Revert",
// ...
onClick: function(evt){
var dirty = that.grid.dirty,
id = object.id;
if(dirty.hasOwnProperty(id)){
// remove dirty data
delete dirty[id];
// ..and notify the store to update
myStore.notify(object, object.id);
}
}
}, cell.appendChild(put("div")) );
return btnRevert;
}
例を含む jsfiddle を次に示します。