找回密码
 立即注册

QQ登录

只需一步,快速开始

Dtttax

高级会员

244

主题

607

帖子

1945

积分

高级会员

积分
1945

[处理中] ctrl+z 撤回问题

Dtttax
高级会员   /  发表于:2024-5-31 11:28  /   查看:437  /  回复:29
1金币
列如在当前表单C里面的单元格输入一个数字后同时在A表单打tag 标记。

具体的代码为:
instance.bind(GSSEvents.EditEnded, async (sender, {
  sheet,
  row,
  col,
  editingText = ''
}) => {   if(editingText ){     let tag={};    tag.editeRole=true;     sheet.getParent().getSheetFromName("A").getCell(12,1).tag=tag;   }}
这个时候如果撤回的话就会先跳到A表单,有什么办法不让他跳表单。直接将设置的单元格值改为之前的值。

29 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-31 15:53:42
沙发
您好,这边调研了一下,暂时没有相关的方案可以阻止撤销时跳转页面。
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2024-5-31 18:39:35
板凳
有没有办法再editend事件输入了数据后按ctrl+z什么都不撤回
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-3 08:56:39
地板
您好,如果想要操作不可被撤回的话,一方面可以直接在命令中修改undo属性为false,另一方面可以直接通过API来修改。
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2024-6-3 10:00:11
5#
如果用api怎么写
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-3 13:32:20
6#
您好,直接修改allowUndo属性为false即可:

image.png948941039.png
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2024-6-3 14:24:54
7#
本帖最后由 Dtttax 于 2024-6-3 16:24 编辑

我是想在editended里面加入事件,事件里面给其他表单打tag,然后输入数字,
但是按ctrl+z还是可以撤回并且先跳其他表单,如果做不到不跳表单,怎么让撤回不生效。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-3 17:52:30
8#
您好,您是说在EditEnded事件中修改其他表单的Tag,然后只允许撤回输入的值而不是Tag对吗?

我这边测试了一下:

  1. sheet.bind(GC.Spread.Sheets.Events.EditEnded, function (sender, args) {
  2.   spread.getSheet(1).tag("123");

  3.   spread.getSheet(1).setTag(0, 0, "321");
  4. });
复制代码


此时在Sheet2任意输入一个单元格,然后Sheet1的Tag为"123",Sheet2的A1单元格的Tag为"321"。

然后执行撤回操作,标签将会保留,输入的值被正常撤销。
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2024-6-3 18:46:56
9#
本帖最后由 Dtttax 于 2024-6-4 11:27 编辑

不是,我想要输入的值能被正常撤销,同时标签也能撤回。但是要求按ctrl+z一次就撤回标签和输入的值,不能先跳到标签的那个表单,然后再按ctrl+z回到输入值的表单撤回输入值。 或者做到输入的值不能撤回,标签也不能撤回。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-4 13:39:46
10#
您好,可以修改editCell命令的canUndo属性来实现:

GC.Spread.Sheets.Commands.editCell.canUndo = false;

此时,任何输入都将不可撤回,如果希望可以撤回,需要将canUndo属性重新设置为true。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部