找回密码
 立即注册

QQ登录

只需一步,快速开始

孙志强 讲师达人认证
金牌服务用户   /  发表于:2023-11-22 18:09  /   查看:857  /  回复:5
1金币


ActiveSheetChanged中绑定了事件,但是每次切换sheet页后,触发的事件都会累计。请问如何在切换后将之前的事件清除?
spread.bind(GC.Spread.Sheets.Events.ActiveSheetChanged, function (sender: any, args: any) {
            sheet = args.newSheet;
            handleChangeSheet(sheet);
        });


image.png237741088.png

最佳答案

查看完整内容

您好,您可以通过unbind方法来解除事件绑定,示例如下: spread.unbind(GC.Spread.Sheets.Events.ActiveSheetChanged) API参考:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Workbook#unbind

5 个回复

倒序浏览
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-22 18:09:47
来自 2#
您好,您可以通过unbind方法来解除事件绑定,示例如下:
spread.unbind(GC.Spread.Sheets.Events.ActiveSheetChanged)

API参考:https://demo.grapecity.com.cn/sp ... ets.Workbook#unbind
回复 使用道具 举报
孙志强讲师达人认证
金牌服务用户   /  发表于:2023-11-24 13:55:53
3#
Richard.Huang 发表于 2023-11-22 18:09
您好,您可以通过unbind方法来解除事件绑定,示例如下:
spread.unbind(GC.Spread.Sheets.Events.ActiveSh ...

这个会把所有sheet页的事件都清除,有没有只清除某个sheet的api?或者如何解决多次触发的问题?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-24 14:53:03
4#
本帖最后由 Richard.Huang 于 2023-11-24 14:55 编辑
孙志强 发表于 2023-11-24 13:55
这个会把所有sheet页的事件都清除,有没有只清除某个sheet的api?或者如何解决多次触发的问题?

您好,有针对sheet的事件,您可以参考这些API:https://demo.grapecity.com.cn/sp ... .Events#cellchanged
image.png753013610.png
spread事件和sheet事件监听的范围不同,不能混用,同样的unbind消除的对应事件范围也不同。通过您的描述来看,您可以用spread监听ActiveSheetChanging事件,在该事件中,您可以将旧sheet上的事件消除,将新sheet上的事件添加:https://demo.grapecity.com.cn/sp ... activesheetchanging
回复 使用道具 举报
孙志强讲师达人认证
金牌服务用户   /  发表于:2023-11-24 17:49:37
5#
Richard.Huang 发表于 2023-11-24 14:53
您好,有针对sheet的事件,您可以参考这些API:https://demo.grapecity.com.cn/sp ... .Events#cellchang ...

目前我就是这个做的,但是sheet页来回切几次后,绑定的事件会触发好几次
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-24 17:58:22
6#
孙志强 发表于 2023-11-24 17:49
目前我就是这个做的,但是sheet页来回切几次后,绑定的事件会触发好几次

目前并不太确定您所说的绑定的事件会触发好多次具体是什么原有,请问能否提供一份可供我们复现的demo,并表述一下复现步骤。方便我们更好地为您解决问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部