找回密码
 立即注册

QQ登录

只需一步,快速开始

Dtttax

银牌会员

265

主题

663

帖子

2116

积分

银牌会员

积分
2116
Dtttax
银牌会员   /  发表于:2024-9-19 17:28  /   查看:388  /  回复:4
1金币
如果直接注册 ctrl+x事件,达不到剪切的效果,是不是跟ctrl+z一样,底层不能重写。

最佳答案

查看完整内容

根据您的描述,理解您可能事先对单元格设置了标签,在通过ctrl+x剪切单元格内容时,根据单元格标签内容给出提示,并且也要禁止对其粘贴。那么,可以分两步来控制,如下所述: 1. 通过js原生的事件监听机制,监听ctrl+x的按键事件,并根据当前活动单元格的tag内容判断是否需要给出提示,参考如下代码: 2. 监听SpreadJS的ClipboardPasting事件,在粘贴过程中判断目标单元格的tag内容,控制是否执行粘贴,参考如下代码: ...

4 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-9-19 17:28:05
来自 5#
Dtttax 发表于 2024-9-20 13:34
有些单元格根据tag判断,如果用了剪切就提示并且不让粘贴

根据您的描述,理解您可能事先对单元格设置了标签,在通过ctrl+x剪切单元格内容时,根据单元格标签内容给出提示,并且也要禁止对其粘贴。那么,可以分两步来控制,如下所述:

1. 通过js原生的事件监听机制,监听ctrl+x的按键事件,并根据当前活动单元格的tag内容判断是否需要给出提示,参考如下代码:
  1. document.addEventListener('keydown', function(event) {
  2.     // 检查是否按下了ctrl键和x键
  3.     if (event.ctrlKey && event.key === 'x') {
  4.         // 阻止默认行为
  5.         event.preventDefault();
  6.         console.log('ctrl+x');
  7.         //  添加用于提示的业务逻辑代码
  8.         var tag = sheet.getTag(sheet.getActiveRowIndex(), sheet.getActiveColumnIndex());
  9.         if (tag && tag === 'check_condition') {
  10.             //  给出提示
  11.         }
  12.     }
  13. });
复制代码

2. 监听SpreadJS的ClipboardPasting事件,在粘贴过程中判断目标单元格的tag内容,控制是否执行粘贴,参考如下代码:
  1. sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function(e, args) {
  2.     console.log('clipboard pasting, args: ', args);
  3.     var tag = sheet.getTag(sheet.getActiveRowIndex(), sheet.getActiveColumnIndex());
  4.     if (tag && tag === 'check_condition') {
  5.         //  禁止对当前单元格粘贴
  6.         args.cancel = true;
  7.     }
  8. });
复制代码

如果我们的理解存在偏差,需要您详细介绍下情况。


回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-19 17:56:33
2#
您好!我们调研下给您同步结论。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-20 11:08:03
3#
您好!请问下您注册ctlr+x事件想要解决什么业务问题呢?
回复 使用道具 举报
Dtttax
银牌会员   /  发表于:2024-9-20 13:34:24
4#
有些单元格根据tag判断,如果用了剪切就提示并且不让粘贴
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部