找回密码
 立即注册

QQ登录

只需一步,快速开始

三吧

注册会员

7

主题

16

帖子

63

积分

注册会员

积分
63
三吧
注册会员   /  发表于:2018-1-23 17:31  /   查看:5555  /  回复:7
用设计器绑定单元格以后,导出模板的JSON,在JavaScript中用fromJSON导入模板JSON,
之后用sheet.getDataSource()方法不能直接获取到绑定单元格的信息?
必须先用setDataSource()方法再绑定一次,才能用getDataSource()方法???

我理解的业务流程是这样:  
         设计模板绑定单元格 → 导出JSON → Web页面导入模板JSON → 用户在Web页面输入数据 → 用getDataSource方法获取用户输入数据 → 保存到数据库

为什么一定要先setDataSource(),用设计器能导出setDataSource参数那样的JSON数据吗?

7 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-24 09:29:27
沙发
因为如果没有setDataSource,相当于没有绑定数据源,那么既然没有绑定数据源,如果只是加载了绑定模板,并不能够代表就绑定了数据源了。
设计器只能设计绑定模板,没有绑定数据源也就是setDataSource的功能。
回复 使用道具 举报
三吧
注册会员   /  发表于:2018-1-24 11:46:07
板凳
ClarkPan 发表于 2018-1-24 09:29
因为如果没有setDataSource,相当于没有绑定数据源,那么既然没有绑定数据源,如果只是加载了绑定模板,并不 ...

那这样,每次模板改了之后,岂不是要改代码。
有什么方法能够动态的拼一个JSON,当做setDataSource的参数
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-24 16:51:29
地板
您试一下setDataScouce(null),好像也可以。
回复 使用道具 举报
三吧
注册会员   /  发表于:2018-1-25 09:15:06
5#
ClarkPan 发表于 2018-1-24 16:51
您试一下setDataScouce(null),好像也可以。

setDataScouce(null)之后,getDataSource()取出来的也是null,取不到用设计器绑定过的单元格的值。

或者有没有方法能通过bindingPath的名,找到对应单元格。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-25 15:06:46
6#
这样做就可以了
1.加载ssjson模板
2.进行空绑定:
var source = new GC.Spread.Sheets.Bindings.CellBindingSource({});
sheet.setDataSource(source);
之后正常在绑定单元格修改或填入信息,最后通过sheet.getDataSource()获得绑定信息
回复 使用道具 举报
三吧
注册会员   /  发表于:2018-1-25 17:07:22
7#
ClarkPan 发表于 2018-1-25 15:06
这样做就可以了
1.加载ssjson模板
2.进行空绑定:

非常感谢。 可以取到,但是现在发现了两个问题。
1,空绑定的时候会清空绑定单元格的内容。
2,用设计器设计的时候,如果右侧那个绑定元是多层的结构,空绑定会失败。

最后sheet.getDataSource()的时候只能取到值变更过的单元格。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-1-26 14:22:21
8#
1.空绑定肯定会清空绑定单元格的内容,因为相当于绑定一个空对象。但是这又有什么关系呢,您新加载一个模板的时候绑定数据本来就是空的。
2.您说的多层结构指的是表格绑定,和单元格绑定是不同的,因为多了一层,所以初始化的时候要多初始化一层
比如我使用表格绑定如下:
image.png449741515.png
那么我加载模板的ssjson后,就应该这样做
var data = {table:[{}]};
var source = new GC.Spread.Sheets.Bindings.CellBindingSource(data);
sheet.setDataSource(source);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部