innerwang 发表于 2024-2-22 18:10:55

编辑条件格式选择单元后按enter键触发editended事件导致异常

本帖最后由 Clark.Pan 于 2024-9-30 11:43 编辑

产品:SpreadJS
版本:V17.0.3
调研编号:SJS-22902
LastReview:2024-09-30
当前进展:正在努力修复中。

我对工作簿进行了editEnded 事件的监听,在事件回调中我会做一些单元格类型的处理。

设置条件格式时,选中比较的单元格后,按enter键进行确定会触发 editEnded 事件,
此时editEnded 事件返回的 editingText 为 undefined ,会误判将返回单元格的类型给取消掉

且条件格式对比单元格的值也变化


如何进行这种场景的规避呢?



录屏及demo如下











Joestar.Xu 发表于 2024-2-23 11:12:59

您好,我不太明白您的具体使用场景,什么时候要将TemplateCell设置为普通单元格,什么时候要将普通单元格设置为TemplateCell?

可不可以直接修改此处的逻辑来实现这个需求呢?




innerwang 发表于 2024-2-23 11:19:13

本帖最后由 innerwang 于 2024-2-23 11:32 编辑

Joestar.Xu 发表于 2024-2-23 11:12
您好,我不太明白您的具体使用场景,什么时候要将TemplateCell设置为普通单元格,什么时候要将普通单元格设 ...
逻辑是这样的:编辑单元格时如果单元格类型是模板单元格,但是内容又不是模板字符串,则会将其设置为普通单元格,如果内容是模板字符串但是类型又不是模板单元格,就会将其设置为模板单元格

其实就是检测值的变更切换单元格类型, 这个逻辑暂时没办法调整哈。正常编辑单元格时都依赖这个逻辑来动态切换单元格类型的


这里为什么按enter 会触发 editEnded 事件呢? 能不能从事件触发的源头来禁止?

Joestar.Xu 发表于 2024-2-23 17:02:09

您好,确实如您所述,在此处不应该触发editEnded事件,这边调研一下这个情况,后续有进展我会在本帖中回复您。

innerwang 发表于 2024-2-23 17:33:45

Joestar.Xu 发表于 2024-2-23 17:02
您好,确实如您所述,在此处不应该触发editEnded事件,这边调研一下这个情况,后续有进展我会在本帖中回复 ...

好的 辛苦

Joestar.Xu 发表于 2024-2-23 17:53:39

:mj72:应该的。

Joestar.Xu 发表于 2024-2-26 18:03:22

您好,您描述的情况初步认定为是一个Bug,目前正在修复中,等修复完毕我会在帖子下回复您。

innerwang 发表于 2024-3-1 09:43:52

请问这个bug 预计在哪个版本修复呢?

Joestar.Xu 发表于 2024-3-1 09:48:29

您好,该问题目前还在修复中,暂时没有发布计划,待后续有进展我会在本帖中回复您。

innerwang 发表于 2024-3-12 09:40:40

请问这个问题进度如何?
页: [1] 2
查看完整版本: 编辑条件格式选择单元后按enter键触发editended事件导致异常