找回密码
 立即注册

QQ登录

只需一步,快速开始

hnjkzhl

注册会员

9

主题

28

帖子

91

积分

注册会员

积分
91
hnjkzhl
注册会员   /  发表于:2021-6-5 17:44  /   查看:2007  /  回复:5
您好!
请问一下我想用cellchanged监控用户进行单元格的操作 , 同时代码里也有setvalue这个操作 , 这个我不想监控到.
有没有现成的办法忽略掉?还是要我自己做个判断 , 判断这个单元格是程序修改的, 还是用户修改的.




5 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-7 08:45:13
沙发
您需要在cellChanged事件里面判断info.propertyName是否等于value,如果是value则为单元格值的变化。
image.png789872741.png
回复 使用道具 举报
hnjkzhl
注册会员   /  发表于:2021-6-7 09:22:05
板凳
image.png121453551.png 现在已经做了这个判断了,但是我用
                                sheet2.getCell(row, 8).value(dirtyDataArray[0].oldValue);
还是会触发这个cellChanged事件
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-7 09:42:48
地板
hnjkzhl 发表于 2021-6-7 09:22
现在已经做了这个判断了,但是我用
                                sheet2.getCell(row, 8).value(dirty ...

在CellChanged的property 中, 一次修改会触发两次,一次是value变化,一次是style变化。您需要进行多次判断,保证能够正常进入到您的逻辑中。做了这个判断并不是让setValue不触发cellChanged,而是触发之后再进行判断处理您需要的逻辑。

如果您对此还有疑问,建议您提供一份demo以及详细描述您的需求,这边给您做调整。
回复 使用道具 举报
hnjkzhl
注册会员   /  发表于:2021-6-7 10:42:50
5#
我现在的业务场景就是使用cellChanged在这个方法中使用sheet2.getCell()修改值,不让他再次触发cellChanged方法,这可以实现吗
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-7 10:59:31
6#
hnjkzhl 发表于 2021-6-7 10:42
我现在的业务场景就是使用cellChanged在这个方法中使用sheet2.getCell()修改值,不让他再次触发cellChang ...

这个不支持,在事件中里面写了触发事件的条件,还是会二次触发的,没有比较好的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部