使用commandManager().setShortcutKey 自定义时候,导致undo redo失效怎么办?
使用commandManager().setShortcutKey 自定义时候,导致undo redo失效怎么办?本帖最后由 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
您好!请教下您在自定义快捷键中设置的命令是否为自定义命令,如果是,请排查下自定义命令的定义中是否允许撤销重做。 按照咱们官网例子这么写的 ,应该改哪里?:
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;
}
}
}; 您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
页:
[1]