请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

1004451577

注册会员

1

主题

1

帖子

7

积分

注册会员

积分
7
最新发帖
1004451577
注册会员   /  发表于:2018-9-3 10:07  /   查看:3947  /  回复:9
表单设置了isProtected = true; 某一列设置locked(false)之后,在这一列如果是普通的单元格,是可以输入内容,如果是checkbox,无法点击选中,是什么原因导致?

9 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-3 11:28:06
沙发
您看一下我附件上传的demo,我这边测试没有问题

lockedfalse.html

1.68 KB, 下载次数: 169

回复 使用道具 举报
kkij
金牌服务用户   /  发表于:2018-11-27 09:56:47
板凳
ClarkPan 发表于 2018-9-3 11:28
您看一下我附件上传的demo,我这边测试没有问题

如果想某列不可编辑,这样写有什么问题呢?
sheet.options.isProtected = true;
sheet.getColumn(1,GC.Spread.Sheets.SheetArea.viewport).locked(false);
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-27 10:37:02
地板
kkij 发表于 2018-11-27 09:56
如果想某列不可编辑,这样写有什么问题呢?
sheet.options.isProtected = true;
sheet.getColumn(1,GC.Sp ...

您的代码是锁定表单,然后解锁1列,

这样的结果就是,整个表单只有一个列可以编辑,其余都不可编辑。

如果希望只有一列不能编辑,您需要把代码改为:

  1. sheet.options.isProtected = true;
  2. var style = sheet.getDefaultStyle();
  3. style.locked = false;
  4. sheet.setDefaultStyle(style);
  5. sheet.getColumn(1,GC.Spread.Sheets.SheetArea.viewport).locked(true);
复制代码
回复 使用道具 举报
kkij
金牌服务用户   /  发表于:2018-11-27 10:48:50
5#
KevinChen 发表于 2018-11-27 10:37
您的代码是锁定表单,然后解锁1列,

这样的结果就是,整个表单只有一个列可以编辑,其余都不可编辑。
...

按此方法处理以后,lock不生效呢?全部都还是可以编辑的
回复 使用道具 举报
kkij
金牌服务用户   /  发表于:2018-11-27 11:02:16
6#
KevinChen 发表于 2018-11-27 10:37
您的代码是锁定表单,然后解锁1列,

这样的结果就是,整个表单只有一个列可以编辑,其余都不可编辑。
...

调试工具显示:sheet.getColumn is not a function
我应用的资源包括:
<script src="../js/jquery.min.js?v=2.1.4"></script>
<script src="../js/spread/gc.spread.sheets.all.11.2.2.min.js" type="text/javascript"></script>
<script src="../js/spread/resources/zh/gc.spread.sheets.resources.zh.11.2.2.min.js" type="text/javascript"></script>
<link href="../css/spread/gc.spread.sheets.excel2013white.11.2.2.css" rel="stylesheet"
        type="text/css" />
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-27 11:56:29
7#
kkij 发表于 2018-11-27 10:48
按此方法处理以后,lock不生效呢?全部都还是可以编辑的

您好,刚才没注意看您发的代码,最后一句sheet.getColumn,没有这个接口,应该通过调用:

  1. sheet.getCell(-1, 1).locked(true)
复制代码


来锁定表单B列,这样执行完成后,整个表单只有B列无法编辑,其它区域都可以正常编辑。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-27 11:57:10
8#
kkij 发表于 2018-11-27 10:48
按此方法处理以后,lock不生效呢?全部都还是可以编辑的

我发完整代码:

  1. sheet.options.isProtected = true;
  2. var style = sheet.getDefaultStyle();
  3. style.locked = false;
  4. sheet.setDefaultStyle(style);
  5. sheet.getCell(-1, 1).locked(true);
复制代码
回复 使用道具 举报
kkij
金牌服务用户   /  发表于:2018-11-27 13:07:34
9#

ok,问题解决了,多谢
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-27 14:29:36
10#
kkij 发表于 2018-11-27 13:07
ok,问题解决了,多谢

不客气,很高兴解决了您的问题,本帖已经结帖,如果有新的问题,可以发新帖询问,如果与旧贴有关联,只需要贴出旧贴地址就可以了~ 谢谢~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部