找回密码
 立即注册

QQ登录

只需一步,快速开始

Quber

注册会员

7

主题

26

帖子

151

积分

注册会员

积分
151
最新发帖
Quber
注册会员   /  发表于:2023-12-18 15:15  /   查看:777  /  回复:6
本帖最后由 Quber 于 2023-12-18 15:16 编辑

1、版本号
版本为16.2.6,Vue3。


2、问题描述
我将第一个表单的第一个单元格类型设置为了复选框,设置后点击这个单元格没办法触发表单单元格的点击事件,代码和效果图如下:
  1. //单元格点击事件
  2. let spreadNS = GC.Spread.Sheets;
  3. spread.bind(spreadNS.Events.CellClick, function (e, args) {
  4.         console.log(args.row, args.col, args.sheetArea, args.sheetName, args.sheet);
  5. });

  6. let sheet = spread.getActiveSheet();

  7. var checkbox = new GC.Spread.Sheets.CellTypes.CheckBox();
  8. checkbox.caption('测试');
  9. sheet.getCell(0, 0).cellType(checkbox);
复制代码

单元格类型为复选框时点击这个单元格不触发单元格的点击事件.gif

不知道有什么办法可以解决此问题?

6 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-18 17:15:56
沙发
您好,请使用buttonClicked事件来监听复选框的点击。

参考链接:https://demo.grapecity.com.cn/sp ... vents#buttonclicked
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
Quber
注册会员   /  发表于:2023-12-18 18:03:07
板凳
Joestar.Xu 发表于 2023-12-18 17:15
您好,请使用buttonClicked事件来监听复选框的点击。

参考链接:https://demo.grapecity.com.cn/spreadj ...

根据你的提示,问题已解决!

顺便问一下,涉及到单元格类型的判断,在ButtonClicked中只能判断Button、RadioButtonList、CheckBox和HyperLink这几个类型么?
如果要判断ComboBox类型,就必须在CellClick事件中去,这个是SpreadJS这样设计的么?

有没有可以查阅的地方,可以查阅哪些事件中可以判断单元格什么类型呢?

如下我的代码是一个一个测试验证的,不知道其他类型在什么事件中去判断:
  1. //单元格点击事件
  2. spread.bind(spreadNS.Events.CellClick, function (e, args) {
  3.         //判断当前单元格的类型
  4.         const cellType = args.sheet.getCellType(args.row, args.col);
  5.         let cellTypeName;
  6.         if (cellType instanceof spreadNS.CellTypes.ComboBox) {
  7.                 cellTypeName = 'comboBox';
  8.         }

  9.         //……
  10. });

  11. //单元格中某些类型控件的点击事件(如:按钮、复选框或超链接)
  12. spread.bind(spreadNS.Events.ButtonClicked, function (e, args) {
  13.         //判断当前单元格的类型
  14.         const cellType = args.sheet.getCellType(args.row, args.col);
  15.         let cellTypeName;
  16.         if (cellType instanceof spreadNS.CellTypes.Button) {
  17.                 cellTypeName = 'button';
  18.         } else if (cellType instanceof spreadNS.CellTypes.RadioButtonList) {
  19.                 cellTypeName = 'radio';
  20.         } else if (cellType instanceof spreadNS.CellTypes.CheckBox) {
  21.                 cellTypeName = 'checkbox';
  22.         } else if (cellType instanceof spreadNS.CellTypes.HyperLink) {
  23.                 cellTypeName = 'hyperLink';
  24.         }
  25.         
  26.         //……
  27. });
复制代码



回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-19 10:51:37
地板
您好,

————顺便问一下,涉及到单元格类型的判断,在ButtonClicked中只能判断Button、RadioButtonList、CheckBox和HyperLink这几个类型么?
如果要判断ComboBox类型,就必须在CellClick事件中去,这个是SpreadJS这样设计的么?

是的,目前是这样的设计。

————有没有可以查阅的地方,可以查阅哪些事件中可以判断单元格什么类型呢?

这个目前没有相关的介绍文档,大部分单元格都可以通过cellClick事件来监听,仅有少部分要使用buttonClicked来监听。如您遇到具体的问题可以具体讨论。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-28 17:13:28
5#
您好,请问楼主的问题是否得到解决,如果仍然存在问题,欢迎继续跟帖询问
回复 使用道具 举报
Quber
注册会员   /  发表于:2023-12-28 17:18:39
6#
Richard.Huang 发表于 2023-12-28 17:13
您好,请问楼主的问题是否得到解决,如果仍然存在问题,欢迎继续跟帖询问

已经解决啦,在上一个回答中我已经提到解决了:
image.png45499571.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-28 18:02:41
7#
好的,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部