表单保护动态控制工具栏按钮可用性
应用场景:在表单保护中,表头的工具栏可用性会跟随保护属性同步状态。如当表单中部分单元格处于锁定状态,部分单元格未锁定时,添加表单保护时,设置允许设置单元格格式(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可以点击这里了解。
您好,那如果我想具体控制某个按钮的可用呢,我设置保护之后需要分组和取消分组可用。 阿仁 发表于 2023-12-20 14:18
您好,那如果我想具体控制某个按钮的可用呢,我设置保护之后需要分组和取消分组可用。
您好,我已经在之前的帖子中回复您了,您参考一下。https://gcdn.grapecity.com.cn/showtopic-199377-2-1.html
页:
[1]