请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

dev_hrkj
金牌服务用户   /  发表于:2021-12-17 11:06  /   查看:1927  /  回复:5
1金币
本帖最后由 dev_hrkj 于 2021-12-19 14:57 编辑

您好:
       我在使用fromJSON 生成后的表单中点击上面的按钮,点击效果失效。我用的是style 里的 cellbutton ,请问怎么样可以恢复点击事件?
image.png296232299.png
image.png42961729.png

最佳答案

查看完整内容

您好,建议将comand中做的操作的js代码封装成一个命令,在反序列化前的spread实例中首先需要同步注册这个命令,之后再反序列化之后就可以执行点击按钮后的代码了。 封装命令相关可以参考下面代码:

5 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-17 11:06:59
来自 2#
您好,建议将comand中做的操作的js代码封装成一个命令,在反序列化前的spread实例中首先需要同步注册这个命令,之后再反序列化之后就可以执行点击按钮后的代码了。
封装命令相关可以参考下面代码:
  1. let style = new GC.Spread.Sheets.Style();
  2.                 style.cellButtons= [
  3.                         {
  4.                                 caption: "MyButton",
  5.                                 useButtonStyle: true,
  6.                                 command: "click"
  7.                         }
  8.                 ];

  9.                
  10.                 var command = {
  11.                         canUndo: true,
  12.                         execute: function (context, options, isUndo) {
  13.                                 var Commands = GC.Spread.Sheets.Commands;
  14.                                 if (isUndo) {
  15.                                         Commands.undoTransaction(context, options);
  16.                                         return true;
  17.                                 } else {
  18.                                         console.log("click");
  19.                                         return true;
  20.                                 }
  21.                         }
  22.                 };
  23.                 var commandManager = spread.commandManager();
  24.                 commandManager.register("click", command);
  25.                
  26.                 sheet.setStyle(0, 0, style);
  27.                
复制代码
回复 使用道具 举报
dev_hrkj
金牌服务用户   /  发表于:2021-12-17 13:41:29
3#
Clark.Pan 发表于 2021-12-17 12:27
您好,建议将comand中做的操作的js代码封装成一个命令,在反序列化前的spread实例中首先需要同步注册这个命 ...

好的!我看下
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-17 16:03:40
4#

有新问题欢迎开新帖交流哈~
回复 使用道具 举报
dev_hrkj
金牌服务用户   /  发表于:2021-12-19 14:57:49
5#
Clark.Pan 发表于 2021-12-17 11:06
您好,建议将comand中做的操作的js代码封装成一个命令,在反序列化前的spread实例中首先需要同步注册这个命 ...

搞定,感谢!
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-20 10:21:41
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部