找回密码
 立即注册

QQ登录

只需一步,快速开始

MarlonYJG

注册会员

15

主题

58

帖子

155

积分

注册会员

积分
155
MarlonYJG
注册会员   /  发表于:2024-12-24 15:47  /   查看:121  /  回复:15
2金币
我通过 以下方式绑定整体数据源

  const data = new GC.Spread.Sheets.Bindings.CellBindingSource(dataSource);
  sheet.setDataSource(data);

绑定数据源后,我想修改已经绑定的数据源中的某个值,比如 我想修改dataSource 对象中的id属性值,有没有对应的方法对绑定的数据源进行修改,修改后不用再次重新
sheet.setDataSource(data); 进行绑定。


最佳答案

查看完整内容

按照您所说的,修改的是数据源中未与表单绑定的数据字段,那这些数据不会在表单上显式。 您通过代码修改了数据源对象中未与表单绑定的属性数据后,由于与表单绑定的数据尚未发生变化,可以不用重设数据源,重设数据源的目的是为了同步与表单绑定的属性数据的变化。而此时,通过代码获取数据源可以发现其中已经更新了被修改的属性数据。 如下动图所示,在sheet上绑定了数据源中的三个属性,未绑定属性position;随后通过代 ...

15 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-12-24 15:47:15
来自 7#
MarlonYJG 发表于 2024-12-25 10:13
如果我通过 sheet.setDataSource(source) 重新设置新的数据源,表单绑定的值就会重新刷新(有感)
有没有 ...

按照您所说的,修改的是数据源中未与表单绑定的数据字段,那这些数据不会在表单上显式。

您通过代码修改了数据源对象中未与表单绑定的属性数据后,由于与表单绑定的数据尚未发生变化,可以不用重设数据源,重设数据源的目的是为了同步与表单绑定的属性数据的变化。而此时,通过代码获取数据源可以发现其中已经更新了被修改的属性数据。

如下动图所示,在sheet上绑定了数据源中的三个属性,未绑定属性position;随后通过代码操作数据源对象修改了position属性值,继续通过Worksheet:getDataSource()获取所得的数据源中position属性值即为修改后的值。
数据源修改.gif
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-24 17:24:48
2#
您好!使用修改后的数据源对象重新创建CellBindingSource(),即创建新的绑定数据,然后将其通过Worksheet:setDataSource()设置即可。
回复 使用道具 举报
MarlonYJG
注册会员   /  发表于:2024-12-24 17:32:55
3#
Wilson.Zhang 发表于 2024-12-24 17:24
您好!使用修改后的数据源对象重新创建CellBindingSource(),即创建新的绑定数据,然后将其通过Worksheet:s ...

我是不想再次通过 setDataSource 进行绑定数据源,能否直接改之前已经绑定的数据源,底层自己去同步新的数据。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-25 09:29:41
4#
MarlonYJG 发表于 2024-12-24 17:32
我是不想再次通过 setDataSource 进行绑定数据源,能否直接改之前已经绑定的数据源,底层自己去同步新的 ...

目前直接支持的修改方式就是重设数据源。

没太明白您所说的”直接修改之前已经绑定的数据源,底层自己去同步新的数据“,需要您详细介绍下您的思路。
以sheet.setDataSource(source)为例,是指在代码中修改source指代的对象中的属性数据吗?这个数据发生变化后,不通过显式地更换数据源就让被修改的数据同步在sheet中吗?
回复 使用道具 举报
MarlonYJG
注册会员   /  发表于:2024-12-25 09:48:38
5#
Wilson.Zhang 发表于 2024-12-25 09:29
目前直接支持的修改方式就是重设数据源。

没太明白您所说的”直接修改之前已经绑定的数据源,底层自己 ...

对的,正是需要这样。我的应用场景是这样的:绑定的数据源对象中的某些字段的值 是与我创建的表单中的某些字段进行绑定的,但是数据源对象中的某些字段并没有与表单建立映射,在某些特殊场景下需要修改数据源中并没有与表单建立映射关系的字段值,为了最终确保获取的是最新的数据源,我是通过 sheet.getDataSource().getSource() 方式获取。
回复 使用道具 举报
MarlonYJG
注册会员   /  发表于:2024-12-25 10:13:16
6#
Wilson.Zhang 发表于 2024-12-25 09:29
目前直接支持的修改方式就是重设数据源。

没太明白您所说的”直接修改之前已经绑定的数据源,底层自己 ...

如果我通过 sheet.setDataSource(source) 重新设置新的数据源,表单绑定的值就会重新刷新(有感)
有没有那种 “无感”的方式去修改数据源。
回复 使用道具 举报
MarlonYJG
注册会员   /  发表于:2024-12-25 13:53:41
8#
Wilson.Zhang 发表于 2024-12-25 13:33
按照您所说的,修改的是数据源中未与表单绑定的数据字段,那这些数据不会在表单上显式。

您通过代码修 ...

你的示例是哪个版本
回复 使用道具 举报
MarlonYJG
注册会员   /  发表于:2024-12-25 13:58:50
9#
Wilson.Zhang 发表于 2024-12-25 13:33
按照您所说的,修改的是数据源中未与表单绑定的数据字段,那这些数据不会在表单上显式。

您通过代码修 ...

我们买了贵公司得两个版本,v14和v15 目前在v14上 我修改并没有同步,v15 还没试
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-25 17:31:41
10#
MarlonYJG 发表于 2024-12-25 13:58
我们买了贵公司得两个版本,v14和v15 目前在v14上 我修改并没有同步,v15 还没试

我之前在17.1.10版本测试。

随机在14版本和15版本测试了,也未能复现,与在17.1.10版本测试的结果相同,如下动图所示:

14.1.0版本测试情况:
14.1.0版本测试效果.gif
15.1.0版本测试情况:
15.1.0版本测试效果.gif
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部