背景:用户现在使用的表格有7,8个层级,想实现只让前三层可以展开折叠
思路:SpreadJS 的分组列 中提供了getCollapsed、setCollapsed 接口,可以获取、设置折叠状态,监听单元格的点击事件,如果是某个固定层级的数据,就按照业务需要控制其折叠、展开的状态
关键代码:
- sheet.bind(GC.Spread.Sheets.Events.CellClick,function(e, info){
- sheet.suspendPaint()
- console.log(info)
- var getCheckStatus = new GC.Spread.Sheets.OutlineColumn.OutlineColumn(sheet).getCheckStatus(info.row);
- var getCollapsed = new GC.Spread.Sheets.OutlineColumn.OutlineColumn(sheet).getCollapsed(info.row);
- console.log(getCheckStatus)
- console.log(getCollapsed)
- var textIndent = sheet.getCell(info.row, info.col).textIndent()
- console.log(textIndent)
- if (textIndent==1){ // 第二级强制折叠
- var instance = new GC.Spread.Sheets.OutlineColumn.OutlineColumn(sheet);
- instance.setCollapsed(info.row, true);
- }
- sheet.resumePaint()
- })
复制代码 实现效果是第二层级的数据无法展开,只能收起,第一层级可以顺利折叠展开:
|
|