应用场景:在表单保护中,表头的工具栏可用性会跟随保护属性同步状态。如当表单中部分单元格处于锁定状态,部分单元格未锁定时,添加表单保护时,设置允许设置单元格格式(sheet.options.protectionOptions.formatCells=true)时,会导致无论选中的是否是锁定单元格,工具栏上方设置单元格格式的相关按钮都是可以使用的,这一点其实与Excel中的行为是一致的。
但在web端,客户想要的效果其实是根据单元格的锁定状态,动态的去控制顶部工具栏按钮的可用性。
实现方案:借助事件监听,动态的去更新表单保护时的相关属性。
核心代码:
- sheet.bind(GC.Spread.Sheets.Events.CellClick,function(e,info){
- let {row,col} = info
- let isLock = sheet.getCell(row,col).locked()
- if(isLock){
- sheet.options.protectionOptions.formatCells = false
- }else{
- sheet.options.protectionOptions.formatCells = true
- }
- designer.refresh()
- })
复制代码
重要提示:当前示例中,是用单元格点击事件来做的,但是在实际客户操作中,会有不少的区域设置,这时需要考虑换用其它的监听事件方式。SpreadJS中提供的事件可以参考:事件列表。同时,涉及区域选中或多选区时,如果既包含锁定单元格,又包含非锁定单元格,需要如何设置工具栏状态,也需要根据业务考虑。
详细的demo可以点击这里了解。
|
|