Lynn.Dou 发表于 2022-8-30 09:49:14

根据条件禁用删除键

背景:
客户希望对于特定列(如第一列),禁止通过del键、backspace键对单元格进行删除。

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

主要代码如下:
var command = {
                canUndo: false,
                execute: function (context, options, isUndo) {
                  var Commands = GC.Spread.Sheets.Commands;
                  if (isUndo) {
                        Commands.undoTransaction(context, options);
                        return true;
                  } else {
                        Commands.startTransaction(context, options);
                        // 第一列禁止删除
                        if (context.getActiveSheet().getActiveColumnIndex() != 0) {
                            return false
                        }

                        Commands.endTransaction(context, options);
                        alert("第一列禁止删除")
                        return true;
                  }
                }
            };

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

            spread.commandManager().setShortcutKey("ban1", GC.Spread.Commands.Key.del, false, false, false, false);
            spread.commandManager().setShortcutKey("ban2", GC.Spread.Commands.Key.backspace, false, false, false, false);

_yan 发表于 2022-8-30 11:04:08

:i0tw:

Lynn.Dou 发表于 2022-8-30 13:50:43

:itwn:
页: [1]
查看完整版本: 根据条件禁用删除键