本帖最后由 lynn512 于 2021-2-23 16:47 编辑
背景:禁止编辑某些单元格 是很多SJS用户常遇到的需求,相信一些小伙伴已经知道可以通过表单保护来解决,但是表单保护也存在一定的局限性。
比如:设置表单保护后,下拉填充无效;table不可自动扩展;table不能插入行/列 等等。
但一些用户既想实现某些单元格不可编辑,又不想影响填充、表格的一些行为,这个时候如何“鱼和熊掌兼得”呢?
本文就带领大家学习:禁止编辑单元格的第二种方式 - 事件监听。
1、如果有小伙伴还不了解表单保护,可以先阅读下方技术博客或在学习指南了解更多信息:
表单保护相关问题总结
学习指南 - 表单保护
2、监听 EditStarting 事件。
监听 EditStarting 事件,在事件中结合自己的业务逻辑,来判断是否是不能编辑的单元格。
如果是目标单元格,则设置args.cacel = true, 就可以阻止继续编辑了。
示例代码:
sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
console.log("Start cell editing.");
// 判断如果是不能编辑的单元格,则执行以下代码
args.cancel = true;
});
这样我们就可以实现禁止编辑某些单元格的需求了。
|
|