SMART datagrid v.1 > Examples

[ grids ver.1.3.0]   Back  Forward

Undo & Redo  Example

与一般的文档编辑应用相同,SMART datagrid格提供可以分阶段撤销(Undo)或重做(Redo)用户输入或数据组修改的功能。 

如果将GridBase.undoableDataSet.undoable全都指定为true, 用户就可以在运行时间,通过输入"Ctrl+Z"和"Ctrl+Y"键,撤销或重做修改记录,而在脚本中,可以调用GridBase.undoredo。 


(ctrl+Z, cmd+Z)    (ctrl+Y, cmd+Y

Grid - 1
rows
如果变更这个值,将会清除现有DataSet Undo列表。
如果变更这个值,将会清除现有Grid Undo列表。
如果将这个属性指定为true,就会通过Delete键,清除所选区域的值。
如果将这个属性指定为true,就会在修改行,以单元格为单位进行提交。
如果将这个属性指定为true,就会在添加行,以单元格为单位进行提交。

清除数据组撤销栈(Undo Stack)。
清除网格撤销栈(Undo Stack)。

数据修改可能会发生在网格数据组级别。 网格上,可能会发生在用户修改或添加行的过程,而数据组的修改, 可能会发生在网格上已结束编辑的数据被传递至数据组或直接调用数据组api函数的过程。 

如果想在网格行的编辑过程中实现撤销和重做,就需要将GridBase.undoable指定为true。 而且,如果想实现数据组级别的撤销和重做,就需要将DataSet.undoable指定为true。 大部分的情况下,为用户提供撤销和重做UI时,可以同时指定两种属性为true。 

Code -1
    dataset.setUndoable(true);
    grid.setUndoable(true);

可以通过GridBase.onUndoStateChanged事件,了解当前是否可以撤销或重做。 

Code -2
    grdMain.onUndoStateChanged = function (grid, canUndo, canRedo) {
        document.getElementById('btnUndo').disabled = !canUndo;  
        document.getElementById('btnRedo').disabled = !canRedo;  
    };

查看源代码 JSP 

See Also
撤销(Undoing)概述
GridBase.undoable
DataSet.undoable
GridBase.clearUndo
GridBase.onUndoStateChanged
EditOptions.erasable
EditOptions.updateByCell
EditOptions.insertByCell
Examples
单元格编辑
编辑键