找回密码
 立即注册

QQ登录

只需一步,快速开始

一个昵称

注册会员

3

主题

12

帖子

31

积分

注册会员

积分
31
最新发帖
一个昵称
注册会员   /  发表于:2024-10-15 10:26  /   查看:314  /  回复:8
1金币
本帖最后由 一个昵称 于 2024-10-15 10:28 编辑

在一次更新葡萄城版本之后,发现了这个问题,在新版的表单中开启了保护模式+允许保护模式下删行,已经无法完成删行操作了,见图1。
image.png420314635.png 图1。
在非保护模式下,可以执行删行操作。但这破坏了表格自身提供的一系列保护状态下细分权限的api,例如官网示例:
image.png271035155.png

目前来说认为是一个新版本bug,在原本 16.1.4 的版本下可以完成保护状态下删行操作,希望提供新版本的方案或者作为一个问题修复,并提供修复时间预期。这会额外导致所有已部署的内容都需要升级版本面临不必要的风险。。。所以最好提供不升级新版本的修复方案

image.png53687132.png
image.png399165953.png

最佳答案

查看完整内容

对您使用中的不便表示理解,向您致歉。 表单保护结合单元格锁定对单元格形成操作保护,对于特殊要求,比如局部保护、对部分单元格保护同时允许操作另一部分单元格,这就需要对相关单元格解锁。与此类似,表单保护默认禁止了对工作表的所有可控操作。既然操作可控,那么,在表单保护的情况下,也可以放开某些禁用操作,以此使得表单保护功能灵活,帮助应对不同场景下的保护需求。 如果表单保护时的允许删除行对于锁定单元格 ...

8 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-10-15 10:26:43
来自 5#
一个昵称 发表于 2024-10-15 14:53
你的意思我理解,但这意味着这是一个破坏性的更新,原有的代码逻辑在新版本下不成立了。
而且,这个更新 ...

对您使用中的不便表示理解,向您致歉。

表单保护结合单元格锁定对单元格形成操作保护,对于特殊要求,比如局部保护、对部分单元格保护同时允许操作另一部分单元格,这就需要对相关单元格解锁。与此类似,表单保护默认禁止了对工作表的所有可控操作。既然操作可控,那么,在表单保护的情况下,也可以放开某些禁用操作,以此使得表单保护功能灵活,帮助应对不同场景下的保护需求。

如果表单保护时的允许删除行对于锁定单元格和非锁定单元格均有效,那么,单元格的锁定和非锁定状态的有何使用区别呢?如上所述,显然是为了在表单保护下对单元格形成不同程度的保护。正如在表单保护下不能编辑锁定单元格而可以编辑非锁定单元格,允许删除行也只对非锁定状态的单元格行有效,这点与Excel保持一致,如下动图所示是在Excel中的功能效果。
Excel表单保护删除行.gif


关于您的需求,您想要在表单保护且允许删除行的情况下删除任意选中的行,一个可行的方案是自定义右键菜单中的删除选项,删除时不关注表单保护与否、单元格状态锁定与否。

可以参考官网教程了解自定义右键菜单:
https://demo.grapecity.com.cn/spreadjs/help/docs/faqs/contextMenu/insertrows#%E9%97%AE%E9%A2%98%E5%9C%A8%E7%BA%BF%E8%A1%A8%E6%A0%BC%E7%BC%96%E8%BE%91%E5%99%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95

回复 使用道具 举报
一个昵称
注册会员   /  发表于:2024-10-15 10:30:08
2#
在这里提供本地demo,压缩文件不包含js等资源,使用的是官方下载的最新内容 可以另行下载

demo-17_1_5.zip

8.29 KB, 下载次数: 3

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-15 14:34:11
3#
您好!在表单保护下,允许删除的行是非锁定行,即相关行中的所有单元格应该是非锁定状态。如果包含有锁定状态的单元格,则无法删除该行。
回复 使用道具 举报
一个昵称
注册会员   /  发表于:2024-10-15 14:53:42
4#
Wilson.Zhang 发表于 2024-10-15 14:34
您好!在表单保护下,允许删除的行是非锁定行,即相关行中的所有单元格应该是非锁定状态。如果包含有锁定状 ...

你的意思我理解,但这意味着这是一个破坏性的更新,原有的代码逻辑在新版本下不成立了。
而且,这个更新没有在文档中体现出来,这是不应该的,它会大增我们排查问题的成本。
然后,我们谈谈应该如何解决吧,意思是必须调整原本的表保护逻辑是吗?
已测试:
1. 本情景下重写删行事件无效,因为删行事件根本不触发
2. 期望可以通过右键菜单的开关事件来动态控制是否保护,但是右键菜单只提供了打开时的监听,没有提供对应的关闭监听,我认为这本身就是个问题。。好比事件注册没有对应取消的能力
image.png565062255.png
回复 使用道具 举报
一个昵称
注册会员   /  发表于:2024-10-16 10:41:00
6#
恩 ,我会尝试下自定义菜单方案。顺便问下,我之前找到这个方法删行没触发,也是新版本不可用了吗?
image.png119610594.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-16 14:15:30
7#
一个昵称 发表于 2024-10-16 10:41
恩 ,我会尝试下自定义菜单方案。顺便问下,我之前找到这个方法删行没触发,也是新版本不可用了吗?

您找到的这个命令用于对Table删除行,而非Worksheet。对Worksheet删除行,即,在行头右键菜单中出现的删除行选项,其对应的命令名称是gc.spread.contextMenu.deleteRows,对应变量为GC.Spread.Sheets.Designer.CommandNames.DeleteRows。

可以参考官网API文档了解更多信息:
https://demo.grapecity.com.cn/sp ... andNames#deleterows
回复 使用道具 举报
一个昵称
注册会员   /  发表于:2024-10-16 17:13:27
8#
目前看改写删除行为是最好的方案了,我会按照这个处理,可以结贴了 3q
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-16 17:42:25
9#
一个昵称 发表于 2024-10-16 17:13
目前看改写删除行为是最好的方案了,我会按照这个处理,可以结贴了 3q

不客气!既然问题得以解决,那就结贴了。如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部