找回密码
 立即注册

QQ登录

只需一步,快速开始

波上寒烟
金牌服务用户   /  发表于:2021-8-9 09:31  /   查看:3479  /  回复:15
本帖最后由 Clark.Pan 于 2021-8-9 09:51 编辑

以下方式设置下拉框
let combo = new GC.Spread.Sheets.CellTypes.ComboBox();
combo.items(arr);
combo.editorValueType(
GC.Spread.Sheets.CellTypes.EditorValueType.value
);
item.setCellType(
row,
col,
combo,
GC.Spread.Sheets.SheetArea.viewport
  );

是否有点击下拉的监听事件,可以在点击展开下拉列表的时候通过请求获取下拉列表数据再设置下拉列表


15 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-9 09:54:52
沙发
您好:
可以监听EditStarting事件,然后在事件中通过判断来区别是普通单元格还是comboBox
详细参考附件demo

comboBoxClick.html

1.48 KB, 下载次数: 63

回复 使用道具 举报
波上寒烟
金牌服务用户   /  发表于:2021-8-9 10:12:54
板凳
Clark.Pan 发表于 2021-8-9 09:54
您好:
可以监听EditStarting事件,然后在事件中通过判断来区别是普通单元格还是comboBox
详细参考附件de ...

可以获取已有下拉列表数据吗(如果之前设置过)
回复 使用道具 举报
波上寒烟
金牌服务用户   /  发表于:2021-8-9 10:23:39
地板
本帖最后由 波上寒烟 于 2021-8-9 10:25 编辑
Clark.Pan 发表于 2021-8-9 09:54
您好:
可以监听EditStarting事件,然后在事件中通过判断来区别是普通单元格还是comboBox
详细参考附件de ...
image.png395389403.png

这样需要做其他的处理吗,第一点开下拉的时候修改的下拉,但是还是现在之前的,第二次点开的时候才是需要展示的列表
image.png228314818.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-9 13:41:43
5#
combo.items()方法可以获取设置的内容,参数什么都不传就是获取
回复 使用道具 举报
波上寒烟
金牌服务用户   /  发表于:2021-8-9 13:58:09
6#
Clark.Pan 发表于 2021-8-9 13:41
combo.items()方法可以获取设置的内容,参数什么都不传就是获取

那要怎样获取之前设置的combo对象呢
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-9 14:02:08
7#
设置之前获取,获取的就是设置之前的,设置之后获取,获取的就是之后的
SpreadJS不会专门去保存设置之前和之后的,只有设置的内容
回复 使用道具 举报
波上寒烟
金牌服务用户   /  发表于:2021-8-9 14:03:18
8#
Clark.Pan 发表于 2021-8-9 13:41
combo.items()方法可以获取设置的内容,参数什么都不传就是获取

item.getCellType(args.row, args.col)获取的就是之前的设置combox对象吗
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-9 14:08:23
9#
嗯,用sheet.getCellType(args.row, args.col)获取,再用combo.items()方法去重新设置显示内容。
回复 使用道具 举报
波上寒烟
金牌服务用户   /  发表于:2021-8-9 14:25:21
10#
Clark.Pan 发表于 2021-8-9 14:08
嗯,用sheet.getCellType(args.row, args.col)获取,再用combo.items()方法去重新设置显示内容。

这样异步接口返回的列表数据不会里面展示上去,需要第二次点开的时候才会正常展示,有合适解决方案吗
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部