找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-30 09:49  /   查看:2498  /  回复:2
背景:
客户希望对于特定列(如第一列),禁止通过del键、backspace键对单元格进行删除。

思路:
1、自定义command,在command内部判断选中的单元格的行列信息,来决定是否执行删除操作。
2、注册该命令,并绑定del、backspace快捷键。

主要代码如下:
  1. var command = {
  2.                 canUndo: false,
  3.                 execute: function (context, options, isUndo) {
  4.                     var Commands = GC.Spread.Sheets.Commands;
  5.                     if (isUndo) {
  6.                         Commands.undoTransaction(context, options);
  7.                         return true;
  8.                     } else {
  9.                         Commands.startTransaction(context, options);
  10.                         // 第一列禁止删除
  11.                         if (context.getActiveSheet().getActiveColumnIndex() != 0) {
  12.                             return false
  13.                         }

  14.                         Commands.endTransaction(context, options);
  15.                         alert("第一列禁止删除")
  16.                         return true;
  17.                     }
  18.                 }
  19.             };

  20.             spread.commandManager().register("ban1", command);
  21.             spread.commandManager().register("ban2", command);

  22.             spread.commandManager().setShortcutKey("ban1", GC.Spread.Commands.Key.del, false, false, false, false);
  23.             spread.commandManager().setShortcutKey("ban2", GC.Spread.Commands.Key.backspace, false, false, false, false);
复制代码


2 个回复

倒序浏览
_yan
银牌会员   /  发表于:2022-8-30 11:04:08
沙发
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-30 13:50:43
板凳
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部