Lynn.Dou 发表于 2020-11-27 16:51:28

SpreadJS undo和redo相关API详解

SpreadJS支持撤销和重做行为,相信很多用户已经知道了这个功能,但是有用户在使用过程中对撤销和重做的几个API有疑惑:
为什么 spread.undoManager().canUndo() 有时候返回true,有时却返回false呢?
对这些API不知道该如何区分和使用。
本文将对相关的4个API canUndo()、canRedo()、redo()、undo() :做详细的介绍,希望能帮助大家更好的使用此功能。
我们先根据API文档看下这四个API分别是做什么的。
API链接:https://demo.grapecity.com.cn/spreadjs/help/api/GC.Spread.Commands.UndoManager.html

canUndo():获取是否允许撤消操作。
canRedo():获取是否允许重执行操作。
undo():撤销最后一条命令。撤销操作成功即返回true,否则返回false
redo():重执行最后一个命令。重执行操作成功即返回true,否则返回false

看到这里,大家应该对这几个方法有了了解,接下来我们就结合学习指南的示例demo具体介绍下。
学习指南demo链接:https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/worksheet/actions/custom-action/purejs

这个demo做了undo和redo的演示。选择单元格区域,点击 set BackColor 按钮,此时区域背景色为红色。点击Undo 按钮,背景色撤销,点击 Redo 按钮,背景色被重新设置。


ok,现在我们选择A1,点击 set BackColor 按钮 ,A1设置了背景色。此时可以undo,但是不可以redo。(这很容易理解,因为还没有执行撤销)

所以此时的 canUndo()返回true,canRedo返回false

点击 undo按钮后,此时不可以undo,可以redo。所以此时的 canUndo()返回false,canRedo返回true。

当然我们也可以在控制台输入代码来执行undo和redo









页: [1]
查看完整版本: SpreadJS undo和redo相关API详解