找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

123

主题

8927

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13536

讲师达人悬赏达人元老葡萄SpreadJS 认证SpreadJS 高级认证微信认证勋章

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-28 09:51  /   查看:1516  /  回复:0

SpreadJS支持区域模板的功能,可以讲一个sheet的内容,当作模板显示在其他sheet的单元格中。
image.png232725829.png

学习指南示例中演示了使用sheet binding使用区域模板,其实区域模板是一个特殊的CellType,[size=1em]GC.Spread.Sheets.CellTypes.RangeTemplate
类似CheckBox在所有单元格中都可以使用,下面演示如何在一个单元格中使用区域模板

可以在学习指南中直接修改代码并运行,查看效果
  1. function initSpread(spread) {
  2.     var renderSheet = spread.getActiveSheet();
  3.     renderSheet.defaults.rowHeight = 207;
  4.     var templateSheet = new GC.Spread.Sheets.Worksheet();
  5.     templateSheet.fromJSON(templatesheetjson);
  6.     spread.addSheet(1,templateSheet);
  7.     templateSheet.setFormatter(2,2,"=IMAGE(@)");
  8.     bindEvent(renderSheet, templateSheet);

  9.     renderSheet.suspendPaint();
  10.     renderSheet.setColumnWidth(0, 440)
  11.     var celltype = new GC.Spread.Sheets.CellTypes.RangeTemplate(templateSheet);
  12.     renderSheet.setCellType(0, 0, celltype);
  13.     // 给区域模板单元格设置绑定路径detail
  14.     renderSheet.setBindingPath(0, 0, "detail")
  15.     // 构建数据源,detial是一个对象,属性和模板中绑定信息对应。
  16.     var cellData = {
  17.         "image": "https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/avatar/63.png",
  18.         "registered": {
  19.             "date": "2006-11-30T07:33:34Z",
  20.             "age": 12
  21.         },
  22.         "phone": "0563-6803149",
  23.         "email": "reza.nissen@example.com",
  24.         "fullName": "Reza,Nissen"
  25.     }
  26.     var dataSource = new GC.Spread.Sheets.Bindings.CellBindingSource({"detail": cellData})
  27.     renderSheet.setDataSource(dataSource);
  28.     renderSheet.resumePaint();
  29. }
复制代码
单元格A1,设置了绑定路径detail, 数据源中有detail对象,内容为和目标中绑定信息一直的对象。
效果如图
image.png777787780.png

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部