本帖最后由 卑微的打工狗 于 2024-6-6 18:07 编辑
了解了您的意思,但我发现一个奇奇怪怪的问题;
首先我在刚进入的 designerInitialized 回调方法中使用 sheet.options.isProtected = true; 保护表单,然后根据需求,把所有的单元格进行 locked 进行false处理。
- <span style="color: rgb(81, 81, 81); background-color: rgb(255, 255, 255);">sheet.options.isProtected = true; </span>
复制代码
然后再添加右键的方法中,使用如下所示代码,进行部分 locked 为 true
- let designerConfig = GC.Spread.Sheets.Designer.DefaultConfig;
- designerConfig.commandMap["disableCell"] = {
- text: "设置为只读",
- commandName: "disableCell",
- execute: () => {
- var selections = this.sheet.getSelections()[0];
- if (this.sheet.getCell(selections.row, selections.col).locked() == true) {
- console.log('取消操作')
- this.sheet.getRange(selections.row, selections.col, selections.rowCount, selections.colCount).locked(false);
- } else {
- console.log('添加操作')
- this.sheet.getRange(selections.row, selections.col, selections.rowCount, selections.colCount).locked(true);
- var style = new GC.Spread.Sheets.Style();
- style.backColor = 'blue';
- this.sheet.cellStates.add(selections, GC.Spread.Sheets.CellStatesType.readonly, style);
- }
- }
- };
- designerConfig.contextMenu.push("disableCell");
复制代码
但是以上方法,再多次毫无规律的点击下,设置的背景蓝色,莫名其妙的消失,而后又毫无规律的出现。
请问,该问题如何解决
|
|