找回密码
 立即注册

QQ登录

只需一步,快速开始

reslicma

注册会员

13

主题

32

帖子

119

积分

注册会员

积分
119
reslicma
注册会员   /  发表于:2022-11-22 21:33  /   查看:1629  /  回复:6
1金币
本帖最后由 Ellia.Duan 于 2022-11-23 17:01 编辑

场景如下:首先我使用bindClolumns和setDataSource绑定了表格数据,生成了表格:

image.png571074523.png
然后设置(0, 0) colHeader的单元格为checkbox类型的单元格(三种状态的复选框单元格)
  1. const checkboxCellType = new GC.Spread.Sheets.CellTypes.CheckBox()
  2. checkboxCellType.isThreeState(true)
  3. sheet
  4.   .getCell(0, 0, GC.Spread.Sheets.SheetArea.colHeader)
  5.   .backColor('#fff')
  6.   .locked(true)
  7.   .cellType(checkboxCellType)
  8.   .value(false)
复制代码
然后我发现,设置true或者false都可以生效,复选框也能展示出选中或者没选中,但是设置为null的时候没有生效,然后我手动获取了一下value,这个单元格的value变成了我绑定到表格上的columns数据的displayName文本,而不是null,这个是spread内部做了fallback处理的吗?
  1. sheet.setValue(0, 0, null, GC.Spread.Sheets.SheetArea.colHeader) // 设置null不生效
复制代码
我有办法能够设置这个格子的值为null吗?因为复选框的第三种状态的值是null,我需要在某些场景下设置null,但现在看来colHeader不允许设置值为null,导致我现在只能给他设置两种状态

最佳答案

查看完整内容

您好,如果在数据绑定基础上,恐怕难以实现您的需求。您可以参考下这个学习指南 自定义行列头单元格: https://demo.grapecity.com.cn/sp ... ustom-header/purejs 您可以参考HeaderCheckBoxCellType用法

6 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-22 21:33:08
来自 5#
本帖最后由 Ellia.Duan 于 2022-11-24 17:00 编辑

您好,如果在数据绑定基础上,恐怕难以实现您的需求。您可以参考下这个学习指南 自定义行列头单元格:
https://demo.grapecity.com.cn/sp ... ustom-header/purejs


您可以参考HeaderCheckBoxCellType用法
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-23 15:04:25
2#
本帖最后由 Ellia.Duan 于 2022-11-23 17:02 编辑

您好,此问题已复现 ,需要深入调研下,暂时将此贴置为保留处理,待有进展会及时通知您。【SJS-15899】
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-24 09:33:06
3#
本帖最后由 Ellia.Duan 于 2022-11-24 09:34 编辑

您好,这边为您找到一个解决方案,您可以执行以下代码:
sheet.options.colHeaderAutoText =  GC.Spread.Sheets.HeaderAutoText.blank;
通过以上代码,设置列头展示内容是字母,数字还是空,设置为blank后,就可以设置三态复选框的null状态了。
image.png753950195.png

关于colHeaderAutoText 可以参考下面学习指南的Header Auto Text type:
https://demo.grapecity.com.cn/sp ... sheet-header/purejs
回复 使用道具 举报
reslicma
注册会员   /  发表于:2022-11-24 15:18:21
4#
Ellia.Duan 发表于 2022-11-24 09:33
您好,这边为您找到一个解决方案,您可以执行以下代码:
sheet.options.colHeaderAutoText =  GC.Spread. ...

我这边尝试了一下,这个方法还是不行的,我复述一下场景:

我使用了bindClolumns和setDataSource绑定的数据自动生成的表头和表体,我按照这个试了一下还是不行。可以看一下你们官网这个示例,我试了一下也是不可以的:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/data-binding/sheet-level-binding/purejs
我在这里加了如下代码:
image.png499078368.png
然后五秒后设置null值也是不成功的,打印出来的是columns的displayName:Discontinued

还可以这样试一下,我把他colHeader设置成了三态复选框之后,我没有用代码setValue,我手动点成第三态,然后失焦后还是会恢复成选中状态,然后获取Value又变成了那个displayName值,如下:
image.png646907653.png
失焦后:
image.png506933593.png
回复 使用道具 举报
reslicma
注册会员   /  发表于:2022-11-24 18:19:52
6#
Ellia.Duan 发表于 2022-11-24 16:58
您好,如果在数据绑定基础上,恐怕难以实现您的需求。您可以参考下这个学习指南 自定义行列头单元格:
htt ...

好的,那我参考这个看一下
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-11-24 18:20:30
7#
reslicma 发表于 2022-11-24 18:19
好的,那我参考这个看一下

有问题随时发帖询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部