与一般的文档编辑应用相同,SMART datagrid格提供可以分阶段撤销(Undo)或重做(Redo)用户输入或数据组修改的功能。
如果将GridBase.undoable和DataSet.undoable全都指定为true, 用户就可以在运行时间,通过输入"Ctrl+Z"和"Ctrl+Y"键,撤销或重做修改记录,而在脚本中,可以调用GridBase.undo和redo。
(ctrl+Z, cmd+Z) (ctrl+Y, cmd+Y)
数据修改可能会发生在网格和数据组级别。 网格上,可能会发生在用户修改或添加行的过程,而数据组的修改, 可能会发生在网格上已结束编辑的数据被传递至数据组或直接调用数据组api函数的过程。
如果想在网格行的编辑过程中实现撤销和重做,就需要将GridBase.undoable指定为true。 而且,如果想实现数据组级别的撤销和重做,就需要将DataSet.undoable指定为true。 大部分的情况下,为用户提供撤销和重做UI时,可以同时指定两种属性为true。
dataset.setUndoable(true);
grid.setUndoable(true);
可以通过GridBase.onUndoStateChanged事件,了解当前是否可以撤销或重做。
grdMain.onUndoStateChanged = function (grid, canUndo, canRedo) {
document.getElementById('btnUndo').disabled = !canUndo;
document.getElementById('btnRedo').disabled = !canRedo;
};