MarlonYJG 发表于 2024-12-24 15:47:14

【v15】如何修改已经绑定的数据源

我通过 以下方式绑定整体数据源

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

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


Wilson.Zhang 发表于 2024-12-24 15:47:15

MarlonYJG 发表于 2024-12-25 10:13
如果我通过 sheet.setDataSource(source) 重新设置新的数据源,表单绑定的值就会重新刷新(有感)
有没有 ...

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

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

如下动图所示,在sheet上绑定了数据源中的三个属性,未绑定属性position;随后通过代码操作数据源对象修改了position属性值,继续通过Worksheet:getDataSource()获取所得的数据源中position属性值即为修改后的值。

Wilson.Zhang 发表于 2024-12-24 17:24:48

您好!使用修改后的数据源对象重新创建CellBindingSource(),即创建新的绑定数据,然后将其通过Worksheet:setDataSource()设置即可。

MarlonYJG 发表于 2024-12-24 17:32:55

Wilson.Zhang 发表于 2024-12-24 17:24
您好!使用修改后的数据源对象重新创建CellBindingSource(),即创建新的绑定数据,然后将其通过Worksheet:s ...

我是不想再次通过 setDataSource 进行绑定数据源,能否直接改之前已经绑定的数据源,底层自己去同步新的数据。

Wilson.Zhang 发表于 2024-12-25 09:29:41

MarlonYJG 发表于 2024-12-24 17:32
我是不想再次通过 setDataSource 进行绑定数据源,能否直接改之前已经绑定的数据源,底层自己去同步新的 ...

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

没太明白您所说的”直接修改之前已经绑定的数据源,底层自己去同步新的数据“,需要您详细介绍下您的思路。
以sheet.setDataSource(source)为例,是指在代码中修改source指代的对象中的属性数据吗?这个数据发生变化后,不通过显式地更换数据源就让被修改的数据同步在sheet中吗?

MarlonYJG 发表于 2024-12-25 09:48:38

Wilson.Zhang 发表于 2024-12-25 09:29
目前直接支持的修改方式就是重设数据源。

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

对的,正是需要这样。我的应用场景是这样的:绑定的数据源对象中的某些字段的值 是与我创建的表单中的某些字段进行绑定的,但是数据源对象中的某些字段并没有与表单建立映射,在某些特殊场景下需要修改数据源中并没有与表单建立映射关系的字段值,为了最终确保获取的是最新的数据源,我是通过 sheet.getDataSource().getSource() 方式获取。

MarlonYJG 发表于 2024-12-25 10:13:16

Wilson.Zhang 发表于 2024-12-25 09:29
目前直接支持的修改方式就是重设数据源。

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

如果我通过 sheet.setDataSource(source) 重新设置新的数据源,表单绑定的值就会重新刷新(有感)
有没有那种 “无感”的方式去修改数据源。

MarlonYJG 发表于 2024-12-25 13:53:41

Wilson.Zhang 发表于 2024-12-25 13:33
按照您所说的,修改的是数据源中未与表单绑定的数据字段,那这些数据不会在表单上显式。

您通过代码修 ...

你的示例是哪个版本

MarlonYJG 发表于 2024-12-25 13:58:50

Wilson.Zhang 发表于 2024-12-25 13:33
按照您所说的,修改的是数据源中未与表单绑定的数据字段,那这些数据不会在表单上显式。

您通过代码修 ...

我们买了贵公司得两个版本,v14和v15 目前在v14上 我修改并没有同步,v15 还没试

Wilson.Zhang 发表于 2024-12-25 17:31:41

MarlonYJG 发表于 2024-12-25 13:58
我们买了贵公司得两个版本,v14和v15 目前在v14上 我修改并没有同步,v15 还没试

我之前在17.1.10版本测试。

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

14.1.0版本测试情况:

15.1.0版本测试情况:

页: [1] 2
查看完整版本: 【v15】如何修改已经绑定的数据源