请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

qulitao888

注册会员

1

主题

2

帖子

9

积分

注册会员

积分
9
  • 35

    金币

  • 1

    主题

  • 2

    帖子

最新发帖
qulitao888
注册会员   /  发表于:2024-11-29 12:03  /   查看:39  /  回复:3
1金币
使用commandManager().setShortcutKey 自定义时候,导致undo redo失效怎么办?

3 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:7 天前
沙发
您好!请教下您在自定义快捷键中设置的命令是否为自定义命令,如果是,请排查下自定义命令的定义中是否允许撤销重做。
回复 使用道具 举报
qulitao888
注册会员   /  发表于:7 天前
板凳
按照咱们官网例子这么写的 ,应该改哪里?:


  let commanddel = {
    canUndo: true,
    execute: function(context, options, isUndo) {
      let Commands = GC.Spread.Sheets.Commands;
      if (isUndo) {
        Commands.undoTransaction(spread, options);
        return true;
      } else {

        Commands.startTransaction(context, options);
        //禁止删除
        console.log(context.getActiveSheet().getActiveColumnIndex());
        if (context.getActiveSheet().getActiveColumnIndex() != 1
          && context.getActiveSheet().getActiveColumnIndex() != 2
          && context.getActiveSheet().getActiveColumnIndex() != 3
          && context.getActiveSheet().getActiveColumnIndex() != 7
        ) {
          return false;
        }
        Commands.endTransaction(context, options);
        alert('禁止删除');
        return true;
      }
    }
  };
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:4 天前
地板
本帖最后由 Wilson.Zhang 于 2024-12-2 11:55 编辑
qulitao888 发表于 2024-11-29 20:37
按照咱们官网例子这么写的 ,应该改哪里?:

猜测可能是通过快捷键触发命令时options中未携带命令名称,导致撤销栈未能正常记录。在execute方法内部,判断isUndo前将命令名称赋值给options.cmd。

可以参考官网产品文档了解详情:
https://demo.grapecity.com.cn/spreadjs/help/docs/faqs/worksheet/commands/custom-commands
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部