找回密码
 立即注册

QQ登录

只需一步,快速开始

白鱼
中级会员   /  发表于:2024-1-8 11:17  /   查看:1256  /  回复:5
1金币
如题

spread.addSheet()方法不触发SheetChanged事件,SheetChanged事件中有一个args.propertyName = insertSheet类型的属性变化类型,使用spread.addSheet()创建sheet为什么不能触发SheetChanged事件呢?
有没有其它的方案可以让它触发?还是只能是代码内部重新调用一次SheetChanged事件的内容?

最佳答案

查看完整内容

通过您的描述,您已经解决问题了,那本帖先结贴啦,有问题欢迎追帖询问。

5 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-1-8 11:17:55
来自 6#
通过您的描述,您已经解决问题了,那本帖先结贴啦,有问题欢迎追帖询问。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-1-8 12:01:51
2#
本帖最后由 Ellia.Duan 于 2024-1-8 12:03 编辑

您好,一般来说,用户UI行为会触发事件,用来在UI行为后做一些逻辑判断。
代码执行不会触发事件,因为可以直接在代码中控制相应的业务逻辑。
所以,您想要在事件中处理什么呢?

回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-1-8 13:52:09
3#
Ellia.Duan 发表于 2024-1-8 12:01
您好,一般来说,用户UI行为会触发事件,用来在UI行为后做一些逻辑判断。
代码执行不会触发事件,因为可以 ...

我们这里有一项业务是,如果sheet页受保护,则不允许修改该sheet页的名称,如果不受保护,则可以修改。
但是是否可以修改sheet页的名称由spread.options.tabEditable控制,在某种场景下我们要代码创建一个sheet页,并且控制其是否可以修改名称,此时SheetChanged事件不会触发,那就只能手动触发一下
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-1-8 15:10:16
4#
您好,做了一个测试:

  1.    var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount: 3});
  2.         var sheet = spread.getActiveSheet();
  3.         spread.options.tabEditable = false;

  4.         spread.addSheet(4,new GC.Spread.Sheets.Worksheet("custom"));
复制代码


上述代码实现了创建了3个sheet的工作簿,然后设置不允许编辑sheet名称,接下来新建了sheet .但是这四个sheet均不可以编辑。

所以还是不太理解您说的新建sheet后,手动触发一下,处理什么逻辑呢?
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-1-8 16:23:06
5#
Ellia.Duan 发表于 2024-1-8 15:10
您好,做了一个测试:

因为要修改sheet页名称需要先切换到指定sheet页
因此我这边在SheetChanged事件中做了设置,切换sheet页时对切换后的sheet检查是否受保护,受保护时关闭sheet修改选项,不受保护时开启sheet修改选项,以此来实现不同sheet页编辑sheet名称的业务需求
我这边已经自行处理了上述的场景,在插入时设置可编辑sheet页
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部