SpreadJS支持区域模板的功能,可以讲一个sheet的内容,当作模板显示在其他sheet的单元格中。
学习指南示例中演示了使用sheet binding使用区域模板,其实区域模板是一个特殊的CellType,[size=1em]GC.Spread.Sheets.CellTypes.RangeTemplate
类似CheckBox在所有单元格中都可以使用,下面演示如何在一个单元格中使用区域模板
可以在学习指南中直接修改代码并运行,查看效果
- function initSpread(spread) {
- var renderSheet = spread.getActiveSheet();
- renderSheet.defaults.rowHeight = 207;
- var templateSheet = new GC.Spread.Sheets.Worksheet();
- templateSheet.fromJSON(templatesheetjson);
- spread.addSheet(1,templateSheet);
- templateSheet.setFormatter(2,2,"=IMAGE(@)");
- bindEvent(renderSheet, templateSheet);
- renderSheet.suspendPaint();
- renderSheet.setColumnWidth(0, 440)
- var celltype = new GC.Spread.Sheets.CellTypes.RangeTemplate(templateSheet);
- renderSheet.setCellType(0, 0, celltype);
- // 给区域模板单元格设置绑定路径detail
- renderSheet.setBindingPath(0, 0, "detail")
- // 构建数据源,detial是一个对象,属性和模板中绑定信息对应。
- var cellData = {
- "image": "https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/avatar/63.png",
- "registered": {
- "date": "2006-11-30T07:33:34Z",
- "age": 12
- },
- "phone": "0563-6803149",
- "email": "reza.nissen@example.com",
- "fullName": "Reza,Nissen"
- }
- var dataSource = new GC.Spread.Sheets.Bindings.CellBindingSource({"detail": cellData})
- renderSheet.setDataSource(dataSource);
- renderSheet.resumePaint();
- }
复制代码 单元格A1,设置了绑定路径detail, 数据源中有detail对象,内容为和目标中绑定信息一直的对象。
效果如图
|
|