找回密码
 立即注册

QQ登录

只需一步,快速开始

johnly
初级会员   /  发表于:2020-6-9 17:16  /   查看:5149  /  回复:12
image.png828302917.png

如上图所示:当前第一行第三列单元格正在编辑中,然后我点击1处,此时单元格会失去焦点,并且触发 valuechanged事件,
我的需求是:点击1处时,单元格不要失去焦点,要保持编辑状态,并且不要触发 valuechanged事件。
image.png314963988.png

12 个回复

倒序浏览
Fiooona
论坛元老   /  发表于:2020-6-9 19:05:40
沙发
暂时没有什么好的办法,可以说下具体是什么样的业务场景下有这样的需求,看下有什么其他的解决方案
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
johnly
初级会员   /  发表于:2020-6-10 16:42:00
板凳
Fiooona 发表于 2020-6-9 19:05
暂时没有什么好的办法,可以说下具体是什么样的业务场景下有这样的需求,看下有什么其他的解决方案

举个例子:

目前需求是:用户先双击一个单元格,使此单元格变成编辑状态,并且修改了此单元格的值。突然用户发现1处有个表单还没提交,然后就点击了1处,但是用户不想此单元格的值被修改,想先提交了表单之后,再继续编辑单元格的值。

所以我是想问,点击了1处,怎么让单元格保持编辑状态?

或者让单元格的值恢复原值也行。因为一旦退出编辑状态,并且用户修改了单元格的值,就会触发valuechanged事件,我在valuechanged事件的回调中写了请求后端接口保存单元格值的代码。


不知道我这样讲有没有解释清楚。

回复 使用道具 举报
johnly
初级会员   /  发表于:2020-6-10 16:47:11
地板
Fiooona 发表于 2020-6-9 19:05
暂时没有什么好的办法,可以说下具体是什么样的业务场景下有这样的需求,看下有什么其他的解决方案

image.png267802428.png

如上图所示,是一个excel表格的截图,第11行第H列单元格现在处于编辑状态,我点击箭头红框处是不会让单元格失去焦点并修改值的。

我就是想要实现同样的功能。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-6-10 22:56:42
5#
正常来说SpreadJS 不做任何处理就是默认的不会退出编辑状态,除非主动失去焦点才行, 1591800900(1).jpg 可以看下自己代码中是不是添加了相关的代码
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
johnly
初级会员   /  发表于:2020-6-11 08:51:04
6#
Fiooona 发表于 2020-6-10 22:56
正常来说SpreadJS 不做任何处理就是默认的不会退出编辑状态,除非主动失去焦点才行,可以看下自己代码中是 ...

你们的demo中的表格是通过iframe嵌套进去的。点击此iframe之外的地方不会失去焦点,但是点击iframe内的地方会失去焦点。
试试这个链接:https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/ellipsis/purejs

image.png504033202.png

如上图,点击1处不会失去焦点,点击2处会失去焦点。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-11 15:47:03
7#
你好,这个功能无法实现,目前产品的逻辑是,失去焦点后立即执行设置值、结束编辑的行为,

而此时新的dom元素并未获得焦点(SpreadJS内部也会有焦点转移),无法预先判断出获得焦点的目标是SpreadJS外部还是内部。

跨iframe可以这样显示是因为两个页面中焦点不会冲突。
回复 使用道具 举报
johnly
初级会员   /  发表于:2020-6-12 11:45:18
8#
KevinChen 发表于 2020-6-11 15:47
你好,这个功能无法实现,目前产品的逻辑是,失去焦点后立即执行设置值、结束编辑的行为,

而此时新的do ...

如果使用自定义单元格能否实现这个需求呢?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-12 16:55:53
9#
您好,经调研,自定义单元格无法实现这个功能,因为对于自定义单元格的input Element,只能通过自定义单元格的接口执行创建、激活、setValue、getValue的操作,但它的生命周期还是由SpreadJS来管理的,点击失焦后的行为还是无法更改。
回复 使用道具 举报
johnly
初级会员   /  发表于:2020-6-15 12:28:03
10#
KevinChen 发表于 2020-6-12 16:55
您好,经调研,自定义单元格无法实现这个功能,因为对于自定义单元格的input Element,只能通过自定义单元 ...

好的,谢谢,顺便问下,这个需求你们以后会加上去吗?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部