在单元格中使用区域模板(RangeTemplate)
SpreadJS支持区域模板的功能,可以讲一个sheet的内容,当作模板显示在其他sheet的单元格中。
学习指南示例中演示了使用sheet binding使用区域模板,其实区域模板是一个特殊的CellType,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对象,内容为和目标中绑定信息一直的对象。
效果如图
页:
[1]