找回密码
 立即注册

QQ登录

只需一步,快速开始

晓名

初级会员

28

主题

101

帖子

397

积分

初级会员

积分
397
晓名
初级会员   /  发表于:2024-3-13 09:44  /   查看:3161  /  回复:10
1金币
本帖最后由 Joestar.Xu 于 2024-3-20 14:20 编辑


产品:SpreadJS



使用var
combo = new spreadNS.CellTypes.ComboBox();设置下拉框属性值,如下:


image.png391794127.png

是否允许items中的value的值为数值型,我试过改为数值型,让后给单元格设置value=1他只显示1,不显示AA;
image.png639989013.png

最佳答案

查看完整内容

感谢您提供的demo,确实如果showZeros设置为false,那么也不会展示下拉框中对应text的,综合您前面所有的叙述,造成您本贴中setValue没有正确展示成“AA”的问题,主要原因在于editorValueType的设置问题,如果您期望setValue后能够展示对应的text,那么editorValueType应该设置成spreadNS.CellTypes.EditorValueType.value而不是spreadNS.CellTypes.EditorValueType.text,下图为修改后的代码和效果:

10 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-3-28 15:35:23
11#
没有看到您再回复,这个帖子先结帖了。如果问题仍未解决,欢迎继续回帖沟通
回复 使用道具 举报
晓名
初级会员   /  发表于:2024-3-19 15:41:25
9#
Richard.Huang 发表于 2024-3-18 18:04
能否将您的这份ssjson提供给我进行测试呢?我在本地按照您的描述无法复现您的问题,附件是我测试使用的js ...

你看我用你的这个模板修改的,你就查看单元格(0,0),我把这个sheet设置了showZeros = false
然后我直接修改ssjson把第一个单元格设置成为combox的下拉,现在他的value都是0,没显示,我发现了是因为设置了不显示0值,可能是这个原因

新建文件夹.rar

438.94 KB, 下载次数: 737

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-19 11:37:34
8#
您好,您可以参考楼上两种回复进行测试和实现
回复 使用道具 举报
AKA_HSTS
注册会员   /  发表于:2024-3-18 18:42:41
7#
刚试了下,如果将comboBox 的“编辑值类型”设成“索引”类型,然后添加元素的时候,第一个元素的“文字”设成BB, “值”设成“0”, 第二个元素的“文字”设成“AA”,“值”设成“1”.
然后你在console 端调用“sheet.setValue(1,2,1)”,那么comboBox 所在的单元格就会显示成AA。
也就是说,可以借用comboBox 的index 属性 是数值型这一点来实现楼主的需求。

评分

参与人数 1金币 +100 收起 理由
Joestar.Xu + 100 赞一个!

查看全部评分

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-18 18:04:25
6#
晓名 发表于 2024-3-18 16:08
他的回答不是我的问题所问,你看上一条回复,我已发现引发的原因了

能否将您的这份ssjson提供给我进行测试呢?我在本地按照您的描述无法复现您的问题,附件是我测试使用的json,您可以下载到本地后进行测试
2.gif365811461.png

temp.ssjson

2.91 MB, 下载次数: 718

回复 使用道具 举报
晓名
初级会员   /  发表于:2024-3-18 16:08:26
5#
Richard.Huang 发表于 2024-3-13 11:52
您的意思是,您直接修改了导出的ssjson文件中的内容是吗?SpreadJS 的 ssjson 仅作为持久化的存储数据来 ...

他的回答不是我的问题所问,你看上一条回复,我已发现引发的原因了
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-13 11:52:16
4#
晓名 发表于 2024-3-13 10:44
我是直接在ssjosn模板中修改为combo下拉,昨天试了不可以显示,发现是是因为设置showZores:false,然后打 ...

您的意思是,您直接修改了导出的ssjson文件中的内容是吗?SpreadJS 的 ssjson 仅作为持久化的存储数据来使用,不建议您使用任何方式去修改 ssjson 文件,否则极有可能破坏文件导致无法打开的情况出现。

其次,您主贴中所描述的问题,可以参考一下二楼同学的回复,我们的setValue会绕过cellType的检查。
回复 使用道具 举报
晓名
初级会员   /  发表于:2024-3-13 10:44:13
3#
RoyAji 发表于 2024-3-13 09:55
感觉combo box cellType更像是UI有个下拉框提供用户选择,选择选项会设置value。
直接通过API设置value则 ...

我是直接在ssjosn模板中修改为combo下拉,昨天试了不可以显示,发现是是因为设置showZores:false,然后打开为true发现可以显示了
回复 使用道具 举报
RoyAji
初级会员   /  发表于:2024-3-13 09:55:57
2#
感觉combo box cellType更像是UI有个下拉框提供用户选择,选择选项会设置value。
直接通过API设置value则绕过了选择选项,不会在设置value之后检查这个选项是否符合cellType。
测试了下:
image.png482340697.png
回复 使用道具 举报
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-13 09:44:23
来自 10#
晓名 发表于 2024-3-19 15:41
你看我用你的这个模板修改的,你就查看单元格(0,0),我把这个sheet设置了showZeros = false[/backcolo ...

感谢您提供的demo,确实如果showZeros设置为false,那么也不会展示下拉框中对应text的,综合您前面所有的叙述,造成您本贴中setValue没有正确展示成“AA”的问题,主要原因在于editorValueType的设置问题,如果您期望setValue后能够展示对应的text,那么editorValueType应该设置成spreadNS.CellTypes.EditorValueType.value而不是spreadNS.CellTypes.EditorValueType.text,下图为修改后的代码和效果:

image.png150487670.png
image.png102419737.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部