本帖最后由 Ellia.Duan 于 2023-8-24 10:49 编辑
关于批注的相关内容可以查看此学习指南:
https://demo.grapecity.com.cn/sp ... asic-comment/purejs
本篇文章介绍一下,批注保护
下面创建了四个批注
- let spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount: 1});
- let sheet = spread.getSheet(0);
- sheet.suspendPaint();
- sheet.addSpan(1, 1, 1, 4);
- sheet.setValue(1, 1, "第二个批注");
- sheet.comments.add(1, 1, "批注1!").displayMode(GC.Spread.Sheets.Comments.DisplayMode.alwaysShown);
- sheet.addSpan(3, 1, 1, 4);
- sheet.setValue(3, 1, "第二个批注");
- sheet.comments.add(3, 1, "批注2!").displayMode(GC.Spread.Sheets.Comments.DisplayMode.alwaysShown);
- sheet.addSpan(6, 1, 1, 4);
- sheet.setValue(6, 1, "第三个批注");
- sheet.comments.add(6, 1, "批注3!").displayMode(GC.Spread.Sheets.Comments.DisplayMode.alwaysShown);
- sheet.addSpan(12, 1, 1, 4);
- sheet.setValue(12, 1, "第四个批注");
- sheet.comments.add(12, 1, "批注4!").displayMode(GC.Spread.Sheets.Comments.DisplayMode.alwaysShown);
- let comment1 = sheet.comments.get(1, 1)
- let comment2 = sheet.comments.get(3, 1)
- let comment3 = sheet.comments.get(6, 1)
- let comment4 = sheet.comments.get(12, 1)
复制代码 如果你不想要用户通过用户界面来改变批注,你可以使用 locked()来锁定它,此时是不可以拖拽且修改批注内容的。 不过在锁定批注之前,你需要锁定表单。
如果你仅仅是不想要用户编辑文本,你可以使用 lockText 方法来锁定文本,此时批注可以拖拽。
下面的代码分别介绍了 四种情况
分别是
- comment1可以修改文字,不能拖拽;
- comment2可以拖拽并且修改文字;
- comment3不可以修改文字,但是可以拖拽;
- comment4不可以修改文字,不可以拖拽
注意comment2 两个属性都要设置为false ,不可以只设置locked(),应该此时属于表单保护状态,如果不主动置为false ,默认为true 。
所以comment4的设置locked()可写可不写。注释掉comment4的相关代码,也是不可编辑状态
- sheet.options.isProtected = true;
- //comment1可以修改文字,不能拖拽
- comment1.locked(true);
- comment1.lockText(false);
- // comment2可以拖拽并且修改文字
- comment2.locked(false);
- comment2.lockText(false);
- // comment3不可以修改文字,但是可以拖拽
- comment3.locked(false);
- comment3.lockText(true);
- // comment4不可以修改文字,不可以拖拽
- comment4.locked(true);
复制代码
|