简单 发表于 2021-6-7 15:11:50

【7.0.3.0】如何动态控制表格是否允许编辑

RT,我想要根据条件去判断页面表格是否允许编辑,该如何实现呢?

Eric.Liang 发表于 2021-6-7 15:11:51

众所周知,活字格的表格使用的是葡萄城公司的控件产品SperadJS,如果你想要控制表格是否允许编辑,用活字格内置的设置单元格属性命令,条件格式等等都是无法操作的。
以前,我们会建议大家做两个表格子页面,使用页面容器去切换两个不同的子页面,一个开启了编辑,一个没有开启编辑。

但是,这并不是一个最优的解决方案,所以,论坛大佬谢厅做了这样一个插件
命令类型插件 - 表格编辑模式
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=52747&fromuid=51381
(出处: 葡萄城产品技术社区)


伴随着插件的产生,也出现了其他客户使用的问题,在页面加载命令中使用这个插件的时候,不会生效
页面加载命令中设置的表格编辑模式命令不起作用
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=84759&fromuid=51381
(出处: 葡萄城产品技术社区)


谢厅大佬也给大家做了解释,具体的原因可以参看这里


当然,基于spreadJS的强大功能,我们是可以通过代码去实现的
具体使用的是spreadJS的cellclick事件,页面加载命令中去监听对应表格的cellclick事件
SpreadJS中文API-Class: Worksheet (grapecity.com.cn)

根据标志的不同,动态控制表格是否允许编辑


不允许编辑:
activeSheet.options.isProtected = true;

允许编辑
activeSheet.options.isProtected = false;

通过代码控制后,只需要修改文本框的值,就可以动态控制表格是否允许编辑



紫色幽魂 发表于 2021-6-11 11:34:29

Eric.Liang 发表于 2021-6-7 15:11
众所周知,活字格的表格使用的是葡萄城公司的控件产品SperadJS,如果你想要控制表格是否允许编辑,用活字格 ...

能否给个demo,按照解说设置不起作用

Joe.xu 发表于 2021-6-11 16:09:51

紫色幽魂 发表于 2021-6-11 11:34
能否给个demo,按照解说设置不起作用

特地手撕代码给您做了一个demo,输入框填0,点下按钮表格就可以修改、
输入框填1,点下按钮表格就禁止修改了


Joe.xu 发表于 2021-6-15 08:43:53

感谢您对活字格的支持。
后面有问题,欢迎继续发新帖交流:loveliness:

happyboyjia 发表于 2021-6-25 21:21:18

:hjyzw:

amtath 发表于 2021-6-26 12:12:27

列也可以动态控制吗?
比如当A列为客户,客户列为允许编辑,供应商列锁定;
当A列为供应商,客户列锁定,供应商列开放。

lijetcart 发表于 2021-6-26 18:00:39

amtath 发表于 2021-6-26 12:12
列也可以动态控制吗?
比如当A列为客户,客户列为允许编辑,供应商列锁定;
当A列为供应商,客户列锁定, ...

可以,你得单独再提一个贴,悬赏高点

amtath 发表于 2021-6-26 19:05:20

lijetcart 发表于 2021-6-26 18:00
可以,你得单独再提一个贴,悬赏高点

中午就发了
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=94767&extra=page%3D1

Joe.xu 发表于 2021-6-28 08:59:16

感谢支持,后面有问题欢迎继续发帖交流
页: [1] 2
查看完整版本: 【7.0.3.0】如何动态控制表格是否允许编辑