找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-27 16:51  /   查看:3144  /  回复:0
SpreadJS支持撤销和重做行为,相信很多用户已经知道了这个功能,但是有用户在使用过程中对撤销和重做的几个API有疑惑:
为什么 spread.undoManager().canUndo() 有时候返回true,有时却返回false呢?
对这些API不知道该如何区分和使用。
本文将对相关的4个API canUndo()、canRedo()、redo()、undo() :做详细的介绍,希望能帮助大家更好的使用此功能。
我们先根据API文档看下这四个API分别是做什么的。
API链接:https://demo.grapecity.com.cn/sp ... ds.UndoManager.html

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

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

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


ok,现在我们选择A1,点击 set BackColor 按钮 ,A1设置了背景色。此时可以undo,但是不可以redo。(这很容易理解,因为还没有执行撤销)
image.png950995483.png
所以此时的 canUndo()返回true,canRedo返回false
image.png844678039.png
点击 undo按钮后,此时不可以undo,可以redo。所以此时的 canUndo()返回false,canRedo返回true。
image.png781383056.png
当然我们也可以在控制台输入代码来执行undo和redo
image.png138583983.png








0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部