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

QQ登录

只需一步,快速开始

grb

初级会员

17

主题

53

帖子

461

积分

初级会员

积分
461

微信认证勋章

grb
初级会员   /  发表于:2018-12-17 15:04  /   查看:3898  /  回复:9
本帖最后由 grb 于 2018-12-17 15:38 编辑

代码如下:
  1. const colInfos = [
  2.       { name: 'measureName', displayName: '措施名称', width: 200 },
  3.       { name: 'measureSort', displayName: '普通措施分类', width: 100 },
  4.       { name: 'measureInsideSort', displayName: '措施内部分类', width: 100 },
  5.     ];
  6.     sheet.autoGenerateColumns = false;
  7.     if (list.length > 0) {
  8.       sheet.setDataSource(list);
  9.     }
  10.     sheet.bindColumns(colInfos);
复制代码
我是通过上面代码设置的列字段对应。但是在加载数据之前显示如下:
image.png161787108.png
只有在加载完数据之后,三个字段名才能正确显示为中文。
请问这中现象是怎么回事?

9 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-17 16:48:10
沙发
您好,bindColumns确实是对应的绑定数据时的列设置,

SpreadJS数据绑定的机制就是当您设置了dataSource之后才会显示列名称。

如果您需要更改列名,可以不用bindColumns方法,参考学习指南:

https://demo.grapecity.com.cn/Sp ... #/demos/sheetHeader
回复 使用道具 举报
grb
初级会员   /  发表于:2018-12-17 16:55:38
板凳
KevinChen 发表于 2018-12-17 16:48
您好,bindColumns确实是对应的绑定数据时的列设置,

SpreadJS数据绑定的机制就是当您设置了dataSource ...

我的问题是为什么我设置了三个列的中文显示,只有第一个起作用了呢?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-17 17:04:02
地板
您好,根据您提供的代码,您这个问题我这边没能重现,

我给您上传一个我自己实现数据绑定的Demo,就使用您提供的代码。

SheetDataBinding_grb.html

2.13 KB, 下载次数: 175

回复 使用道具 举报
grb
初级会员   /  发表于:2018-12-17 17:35:54
5#
KevinChen 发表于 2018-12-17 17:04
您好,根据您提供的代码,您这个问题我这边没能重现,

我给您上传一个我自己实现数据绑定的Demo,就使用 ...

谢谢,请问一开始设置dataSource为空数组,现在的现象是表头是默认表头ABC,这是正常现象吗?只有dataSource不是空数组才会显示colInfos中设置的吗?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-17 18:18:04
6#
grb 发表于 2018-12-17 17:35
谢谢,请问一开始设置dataSource为空数组,现在的现象是表头是默认表头ABC,这是正常现象吗?只有dataSou ...

对,因为bindColumns是用来绑定列和dataSource之间的映射的,

您留意一下就会发现,colInfos中有对应dataSource的列名映射,

当您dataSource是空数组时,bindColumns无法获取绑定数据对应的字段名,

所以就不会执行更改表头的操作。

最简单的办法是,您可以为dataSource设置一个元素,每项的值都是一个空字符串即可。

评分

参与人数 1满意度 +5 收起 理由
grb + 5

查看全部评分

回复 使用道具 举报
grb
初级会员   /  发表于:2018-12-17 18:38:28
7#
KevinChen 发表于 2018-12-17 18:18
对,因为bindColumns是用来绑定列和dataSource之间的映射的,

您留意一下就会发现,colInfos中有对应d ...

恩恩,我试了一下这样可以。再请教个问题。支持在colInfos中设置自定义格式化吗?就是说有一个字段的值是字典类型,后台返回的数据是代码,我需要根据字典映射成中文显示。能在colInfos对这一列的值统一设置显示函数吗?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-18 09:09:23
8#
您好,bindColumns 支持函数绑定,您可以参考API:

http://help.grapecity.com/spread ... et~bindColumns.html

其中value属性可以指定一个函数来执行您的映射操作,如果原生函数无法实现,您还可以自定义函数,

自定义函数的方法请参考:

https://demo.grapecity.com.cn/Sp ... mos/customFunctions
回复 使用道具 举报
grb
初级会员   /  发表于:2018-12-18 09:40:29
9#
KevinChen 发表于 2018-12-18 09:09
您好,bindColumns 支持函数绑定,您可以参考API:

http://help.grapecity.com/spread/SpreadSheets12/w ...

示例文档属性不全,就想找这种api文档,感谢耐心解答。可以结贴了。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-18 10:34:16
10#
grb 发表于 2018-12-18 09:40
示例文档属性不全,就想找这种api文档,感谢耐心解答。可以结贴了。

好的,感谢您的反馈,我们后续会在资料的检索方面做进一步的改进!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部