请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

白纸

注册会员

7

主题

19

帖子

70

积分

注册会员

积分
70
最新发帖
白纸
注册会员   /  发表于:2025-1-14 11:18  /   查看:159  /  回复:13
本帖最后由 Wilson.Zhang 于 2025-1-24 14:43 编辑


产品:SpreadJS
版本:17.1.10
调研编号:SJS-28126

图片.png314843138.png
是这里的悬浮控件怎样设置数据绑定

13 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2025-1-14 16:13:33
沙发
您好!无论表单级别、Table级别、单元格级别的数据绑定,其最终目标均为单元格。您图示中的“控件”并非单元格,无法对此实行数据绑定。
不过,这些控件对应有单元格类型,如下图所示:
单元格类型.png157104186.png

将单元格设置为对应的单元格类型,可以予以数据绑定。以复选框为例,复选框勾选或者取消时的值对应为true和false,使用这两个数据值对复选框单元格绑定数据即可,如下动图所示:
单元格类型设置数据绑定.gif

需要注意的是,必须在绑定数据前对单元格设置好所需的单元格类型。
回复 使用道具 举报
白纸
注册会员   /  发表于:2025-1-14 16:26:21
板凳
本帖最后由 白纸 于 2025-1-14 16:29 编辑

164950dvhyd06dessrdwko.png141182250.png 这个功能实现你们推荐我使用这种控件的多选框,如果不使用控件单选框有什么办法来实现这个功能。我现在主要是想实现我这个需求,使用啥都可以
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-1-15 08:52:31
地板
白纸 发表于 2025-1-14 16:26
这个功能实现你们推荐我使用这种控件的多选框,如果不使用控件单选框有什么办法来实现这个功能。我现在主要 ...

对于您的需求场景,复选框控件更合适,但是不支持对复选框控件进行数据绑定。因为数据绑定的目标对象是单元格,包括复选框控件在内的其他控件是以形状存在的实体,而非单元格。

复选框控件FormControlShape对象的name属性值默认以“Check Box”开头,如下图所示:
1736902210865.png670292052.png

可以通过name属性筛选当前sheet中的复选框控件形状对象,之后便可通过FormControlShape:value()设值,复选框控件的value为布尔值,如下图所示:
1736902290443.png74745177.png

对于控件,可以参考如上所述的方式对其设置值,间接实现数据绑定。
回复 使用道具 举报
白纸
注册会员   /  发表于:2025-1-21 11:39:18
5#
本帖最后由 白纸 于 2025-1-21 11:48 编辑
Wilson.Zhang 发表于 2025-1-15 08:52
对于您的需求场景,复选框控件更合适,但是不支持对复选框控件进行数据绑定。因为数据绑定的目标对象是单 ...

我把控件绑定到单元格,数据源的字段也绑定到同一个单元格。在保存的时候可以通过控件的操作把值传给数据源的字段并保存到数据库。但是在保存后从数据库查出来通过数据源的值到单元格在到控件就没起作用了。这个是怎么回事 图片.png808966979.png 就像这个图片上的那个TRUE是从数据库查出来的。预览的时候就显示成FALSE了。那个FALSE是绑定的控件的值。这个是我把控件和数据源字段绑定在同一个单元格上面。为啥初始化显示的时候数据库查出来的值赋给单元格后没有同步到控件上面去
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-1-21 16:15:20
6#
白纸 发表于 2025-1-21 11:39
我把控件绑定到单元格,数据源的字段也绑定到同一个单元格。在保存的时候可以通过控件的操作把值传给数据 ...

您使用的控件并不能像普通单元格般进行数据绑定,给您推荐的做法是显式地通过控件对象FormControlShape:value()设置。

基于您的描述,有两个疑问,如下:
1. “在保存的时候可以通过控件的操作把值传递给数据源的字段并保存到数据库”是怎样的实现?
控件传值至数据库字段.png950965270.png

2. 您说的“把控件和数据源字段绑定在同一个单元格上面”,是指在单元格上设置了数据绑定路径,同时在单元格上放置了一个控件吗?
控件和数据源字段绑定在同一个单元格.jpg270430907.png

即便如问题2所说,这样也不能把单元格中的数据传递至控件,不过按照您当前的实现思路,我理解需要遍历sheet中的每个控件,获取其相同位置处的单元格数据,将单元格数据通过FormControlShape:value()设置控件的值。但是如果单元格有数据,单元格上方又悬浮了控件,可能会造成视觉上的数据混淆现象。
回复 使用道具 举报
白纸
注册会员   /  发表于:2025-1-21 16:39:27
7#
Wilson.Zhang 发表于 2025-1-21 16:15
您使用的控件并不能像普通单元格般进行数据绑定,给您推荐的做法是显式地通过控件对象FormControlShape:v ...

图片.png696939391.png 我把这个控件连接到D1这个单元格,然后在D1这里绑定数据源。改变控件选中状态,D1绑定的数据源值也会变。就可以保存到数据库了。但是保存后重新刷新页面不能根据数据源上的值来同步控件的选择状态。不知道我是哪里出问题了
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-1-22 09:26:37
8#
白纸 发表于 2025-1-21 16:39
我把这个控件连接到D1这个单元格,然后在D1这里绑定数据源。改变控件选中状态,D1绑定的数据源值也会变。 ...

理解您的思路,需要了解下您提到的两个关键之处的代码实现:

1. 控件的值如何同步至设置了绑定路径信息的单元格?
2. 单元格的值如何同步至控件?

需要您协助梳理下您的原始代码,仅将能浮现问题的代码单独集成为可以复现问题的demo,我根据demo测试分析下。
回复 使用道具 举报
白纸
注册会员   /  发表于:2025-1-22 09:48:09
9#
Wilson.Zhang 发表于 2025-1-22 09:26
理解您的思路,需要了解下您提到的两个关键之处的代码实现:

1. 控件的值如何同步至设置了绑定路径信 ...

这个没办法提供demo,涉及到Java后台数据库很大不能单独搞成一个小demo。如果不涉及到数据库那块是没有问题的
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-1-22 14:20:29
10#
白纸 发表于 2025-1-22 09:48
这个没办法提供demo,涉及到Java后台数据库很大不能单独搞成一个小demo。如果不涉及到数据库那块是没有问 ...

那您可以简单描述下这两个关键之处的实现代码吗?比如您使用怎样的接口实现的这两个部分。

既然控件的值能够成功同步至设置了绑定路径信息的单元格,那是否是在控件值修改后将控件值通过Worksheet:setValue()填充在对应单元格?相应地,在读取了数据库数据后,通过哪个API或者怎样将单元格的值设置在控件中?是否有使用FormControlShape:value()?如果没有,可以尝试下。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部