找回密码
 立即注册

QQ登录

只需一步,快速开始

一番星

注册会员

6

主题

14

帖子

64

积分

注册会员

积分
64
一番星
注册会员   /  发表于:2021-12-6 11:42  /   查看:2226  /  回复:5
1金币
下面传的例子中,我将undo按钮设置成一个setCellData的方法,然后按ctrl+z,这个数据并不会撤销
有什么办法可以实现这个需求吗
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

我看到你通过后台代码调用了setCellData。这个是没有办法被记录在undoStack中的,undoStack也没有提供手动添加步骤的办法,因此如果你要用UndoStack来记录操作进行undo,redo的话,目前没有没有办法实现你说的功能 如果真的要做的话,也只能是不适用UndoStack,自己写一套类似的东西,通过快捷键调用

5 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-6 11:42:32
来自 4#
我看到你通过后台代码调用了setCellData。这个是没有办法被记录在undoStack中的,undoStack也没有提供手动添加步骤的办法,因此如果你要用UndoStack来记录操作进行undo,redo的话,目前没有没有办法实现你说的功能

如果真的要做的话,也只能是不适用UndoStack,自己写一套类似的东西,通过快捷键调用
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-6 14:48:52
2#
问题已经收到,我这边验证后给您回复
回复 使用道具 举报
一番星
注册会员   /  发表于:2021-12-6 17:45:43
3#
Richard.Ma 发表于 2021-12-6 14:48
问题已经收到,我这边验证后给您回复

好的谢谢你
回复 使用道具 举报
一番星
注册会员   /  发表于:2021-12-7 10:05:50
5#
Richard.Ma 发表于 2021-12-6 18:38
我看到你通过后台代码调用了setCellData。这个是没有办法被记录在undoStack中的,undoStack也没有提供手动 ...

谢谢确认,请问自己写一套类似的东西,通过快捷键调用,是直接修改grid的键盘按下监听事件吗?这个事件是哪个..? 没找到。

另外,还想请问下有没有能同时给grid设值并且记录在undoStack中的方法
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-7 11:08:46
6#
本帖最后由 Richard.Ma 于 2022-1-6 21:31 编辑

是的,可以用keydown事件
比如ctrl+z
  1.     theGrid.hostElement.addEventListener('keydown', (e) => {
  2.         if (e.keyCode == 90&&e.ctrlKey) {
  3.             alert("undo");
  4.         }
  5.     }, true);
复制代码


没有同时给grid设值并且记录在undoStack的方法,undoStack目前只能记录界面中的操作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部