找回密码
 立即注册

QQ登录

只需一步,快速开始

sanyue
初级会员   /  发表于:2023-11-13 16:53  /   查看:993  /  回复:8
1金币
本帖最后由 Richard.Huang 于 2023-11-15 10:06 编辑

产品:SpreadJS

列添加autocompletecelltype以后,之前单元格有值的地方被清空了
使用的这个的实现方法:自定义单元格实现查询下拉(AutoComplete) - SpreadJS & GcExcel专区 - 教程集锦 - 葡萄城开发者社区 (grapecity.com.cn)

最佳答案

查看完整内容

这个需要您重新设计下自定义单元格的逻辑,demo中paint方法中的value是个obj对象,包含id和text两个属性,所以表现如此。 根据您的需求,单元格接收的value不应该是个obj对象,而是一个字符串。 值的传递涉及到getEditorValue等多个function,上述技术文章demo仅是起示例作用,具体的实现需要您结合实际业务需求思考完成。 关于自定义单元格相关function的使用,您也可以参考学习指南和API文档具体学习。 https://demo.gra ...

8 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-13 16:53:19
来自 9#
sanyue 发表于 2023-11-14 18:30
那这种方法可以怎么改成value不是个object对象,而是个字符串吗?就比如{name:'张三',value:'123'},选项 ...

这个需要您重新设计下自定义单元格的逻辑,demo中paint方法中的value是个obj对象,包含id和text两个属性,所以表现如此。
image.png269705809.png
根据您的需求,单元格接收的value不应该是个obj对象,而是一个字符串。
值的传递涉及到getEditorValue等多个function,上述技术文章demo仅是起示例作用,具体的实现需要您结合实际业务需求思考完成。
关于自定义单元格相关function的使用,您也可以参考学习指南和API文档具体学习。
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/cell-types/custom/purejs
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-13 17:43:30
2#
您好,
“之前单元格有值的地方被清空了” 意思是列上原先有值,在设置cellType后原先的值被清空了吗?
如果是,想与您确认下您业务上是会出现这样的场景吗?一般来说需要先设置cellType,之后用户进行下拉填报,建议您详细描述下,以便问题的进一步调研。
回复 使用道具 举报
sanyue
初级会员   /  发表于:2023-11-13 18:02:05
3#
本帖最后由 sanyue 于 2023-11-14 08:44 编辑

新建的时候是导入的文件,是有值的,编辑的时候是用ssjson回显的,加载完毕添加的autocompletecelltype,这时候把之前导入的数据冲掉了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-14 13:39:31
4#
sanyue 发表于 2023-11-13 18:02
新建的时候是导入的文件,是有值的,编辑的时候是用ssjson回显的,加载完毕添加的autocompletecelltype,这 ...

“新建的时候是导入的文件,是有值的,编辑的时候是用ssjson回显的”这一描述如何理解呢?
您在原demo基础上补充上相关代码,将demo上传,并描述清楚复现步骤,我们验证看看。
回复 使用道具 举报
sanyue
初级会员   /  发表于:2023-11-14 14:00:35
5#
Lynn.Dou 发表于 2023-11-14 13:39
“新建的时候是导入的文件,是有值的,编辑的时候是用ssjson回显的”这一描述如何理解呢?
您在原demo基 ...

就是打开一个designer,在fromjson的option的loaded里,判断符合条件的那一列才添加celltype,添加完那一列本来有值的,全清空了,但也不是清空了,我tojson出来,value是有值的,但是不显示,这样说可以理解吗?
回复 使用道具 举报
sanyue
初级会员   /  发表于:2023-11-14 16:05:33
6#
1

celltype.zip

185.41 KB, 下载次数: 63

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-14 18:11:55
7#
你提供的demo未能运行成功,控制台报错了,不过我参考里面代码整理了一个demo,复现了您描述的问题,如附件。
出现这个问题的原因是,您定义了cellType后,原单元格的paint方法就被重写了,所以原json中的value不能显示。且如果您通过cellType设置value,可以看到value实际是一个object对象。
image.png506329345.png
综上,根据您的需求,需要在原json中定义单元格value对object形式,或者在设置cellType之后再输入值。
image.png917943115.png

autocompletecelltype.zip

4.34 KB, 下载次数: 69

回复 使用道具 举报
sanyue
初级会员   /  发表于:2023-11-14 18:30:04
8#
Lynn.Dou 发表于 2023-11-14 18:11
你提供的demo未能运行成功,控制台报错了,不过我参考里面代码整理了一个demo,复现了您描述的问题,如附件 ...

那这种方法可以怎么改成value不是个object对象,而是个字符串吗?就比如{name:'张三',value:'123'},选项列表展示是‘张三’,实际set值的时候只有‘123’这样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部