找回密码
 立即注册

QQ登录

只需一步,快速开始

keep_pace

注册会员

3

主题

10

帖子

95

积分

注册会员

积分
95
最新发帖
keep_pace
注册会员   /  发表于:2019-1-17 11:48  /   查看:2431  /  回复:5
您好,在按钮点击事件中,我想根据按钮所在单元格的行标和列表获取定义的命名名称,表单中有多个增加,删除按钮,需要判断出是点击的哪个增加或是删除,用于区分在按钮下方动态增加行或删除行,如图: image.png740052489.png

5 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-17 14:51:24
沙发
您好,可以绑定ButtonClick事件后,在事件中获取点击信息,参考代码:

  1.     window.onload = function () {
  2.         var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
  3.         initSpread(spread);
  4.     };

  5.     function initSpread(spread) {
  6.         var spreadNS = GC.Spread.Sheets;

  7.         var sheet = spread.getSheet(0);
  8.         spread.bind(spreadNS.Events.ButtonClicked, function (e, context) {
  9.             var sheet = context.sheet;
  10.             var row = context.row, col = context.col;
  11.             var buttonCellType = sheet.getCellType(row, col);
  12.             var text = buttonCellType.text();
  13.             console.log(text);
  14.         });
  15.         sheet.suspendPaint();

  16.         sheet.setColumnWidth(2, 120);
  17.         sheet.setColumnWidth(1, 120);
  18.         sheet.setRowHeight(1, 50);
  19.         var b0 = new spreadNS.CellTypes.Button();
  20.         b0.text("Margin");
  21.         b0.marginLeft(15);
  22.         b0.marginTop(7);
  23.         b0.marginRight(15);
  24.         b0.marginBottom(7);
  25.         sheet.setCellType(1, 2, b0, spreadNS.SheetArea.viewport);
  26.         sheet.setValue(1, 1, "ButtonCellType");

  27.         sheet.resumePaint();
  28.     }
复制代码


参考API:

http://help.grapecity.com/spread ... llTypes.Button.html
回复 使用道具 举报
keep_pace
注册会员   /  发表于:2019-1-17 15:31:17
板凳
是的,目前是按照您说的这样编码的,可以获取到按钮的名称以及行、列号。
但是表单中有多个相同名称的按钮,比如3个添加,3个删除,这些按钮的位置会随着数据增加与减少变化,当点击某一个删除按钮时,获取到的不知道是哪一行的删除,无法获取需要删除数据的位置。
在表单中对这3个删除按钮进行了命名,比如第3行的删除命名为DEL_1,第5行的删除命名为DEL_2。
想要根据删除按钮所在单元格的行号和列号获取对应的命名DEL_1,这样就能根据DEL_1和自己js中的DEL_1比对,从而确认应该对此删除行下方的数据进行操作,而不是其他数据。

可能描述的内容有点多,应该描述清楚了
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-17 16:37:19
地板
keep_pace 发表于 2019-1-17 15:31
是的,目前是按照您说的这样编码的,可以获取到按钮的名称以及行、列号。
但是表单中有多个相同名称的按钮 ...

您这一行数据没有一个类似ID这样的标记位吗?

其实SpreadJS还有个Tag的功能,您可以在按钮所在单元格上添加一个tag,tag中标记按钮的ID,

在事件中拿一下这个tag,就可以区别于别的按钮了。

参考学习指南:

https://demo.grapecity.com.cn/Sp ... le/#/demos/tagBasic
回复 使用道具 举报
keep_pace
注册会员   /  发表于:2019-1-18 09:52:51
5#
KevinChen 发表于 2019-1-17 16:37
您这一行数据没有一个类似ID这样的标记位吗?

其实SpreadJS还有个Tag的功能,您可以在按钮所在单元格 ...

问题解决了,使用Tag解决了,思维局限了,另一方面对SpreadJs的一些属性、方法还不是很熟,有些还没涉及到,感谢您的回复。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-1-18 11:45:46
6#
keep_pace 发表于 2019-1-18 09:52
问题解决了,使用Tag解决了,思维局限了,另一方面对SpreadJs的一些属性、方法还不是很熟,有些还没涉及 ...

很高兴您解决了问题,有任何新的问题,欢迎您发新贴与我们交流。

我们一直在致力于完善SpreadJS的产品文档,相信以后这样的困扰会越来越少。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部