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

QQ登录

只需一步,快速开始

咸鱼也有梦想

注册会员

1

主题

7

帖子

49

积分

注册会员

积分
49
最新发帖
咸鱼也有梦想
注册会员   /  发表于:2021-2-20 11:50  /   查看:3502  /  回复:13
5金币
本帖最后由 咸鱼也有梦想 于 2021-2-22 14:25 编辑

SpreadJS开启表单保护。在生成绑定数据表格之后,表格内无法正确行前插入及行后插入,且getDataSource()方法取不到数据。
需求和demo描述如下:
1、主要做一个数据填报的功能,模版设计完成是不允许编辑除了数据区域外的区域(即表格生成成功,启用表单保护)
2、demo上,当选择‘开启表单保护锁定表头区域’点击‘添加表格’。录入数据,在选定的位置插入行无法正常进行行前行后插入,数据也无法正常获取。当‘开启表单保护锁定表头区域’未选择时,点击‘添加表格’区域。此时录入数据可以正常插入行及获取数据行。

模板.zip

1.41 MB, 下载次数: 10

最佳答案

查看完整内容

经测试,设置表单保护后,table是不能自动扩展的,也不能插入行/列。这个属于产品设计,与Excel也是保持一致的。(表单保护本身就是为了防止一些修改,SJS对此的设计与Excel保持一致) 您可以在Excel中实际测试下: 在Excel添加table, table是默认自动扩展的。将table下方单元格设置为 未锁定,并设置表单保护,此时table不能自动扩展,不能插入行/列。 也就是说,如果您想实现 table自动扩展的,插入行/列,就不能使用表 ...

13 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-20 11:50:15
来自 12#
经测试,设置表单保护后,table是不能自动扩展的,也不能插入行/列。这个属于产品设计,与Excel也是保持一致的。(表单保护本身就是为了防止一些修改,SJS对此的设计与Excel保持一致)

您可以在Excel中实际测试下:
在Excel添加table, table是默认自动扩展的。将table下方单元格设置为 未锁定,并设置表单保护,此时table不能自动扩展,不能插入行/列。

也就是说,如果您想实现 table自动扩展的,插入行/列,就不能使用表单保护。
除了表单保护外,也可以使用事件监听的方式来实现 禁止编辑单元格。
EditStarting事件中判断是否是不能编辑的单元格,设置args.cacel = true,可以阻止继续编辑。
相关API:
https://demo.grapecity.com.cn/spreadjs/help/api/GC.Spread.Sheets.Worksheet.html#event:EditStarting


回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-20 12:07:40
2#
本帖最后由 lynn512 于 2021-2-20 12:12 编辑

您好,您现在使用的是哪个版本呢?
建议您先升级至 V14版本,看下问题是否能解决.
如果问题还未解决,您上传个简单可复现此问题的demo,这边调研下。
附件为demo模板,您可以在模板添加有关此问题的代码逻辑。


模板.zip

13.63 MB, 下载次数: 3

回复 使用道具 举报
咸鱼也有梦想
注册会员   /  发表于:2021-2-22 13:46:48
3#
lynn512 发表于 2021-2-20 12:07
您好,您现在使用的是哪个版本呢?
建议您先升级至 V14版本,看下问题是否能解决.
如果问题还未解决,您 ...

您好,我用的是14.0.4版本。模版我上传了。在开启表单保护下,获取不到填写的数据且无法正确行前行后插入行。麻烦您帮忙看下,谢谢
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-22 14:11:17
4#
demo已运行,从您的代码中未能理解需求,需要您先明确下自己的需求。

1、点击 添加表格,表格数据为空。(点击 添加表格 按钮,期待效果是什么?)
2、在未开启表单保护时,点击 行前/后插入 报错。(未开启表单保护时是什么效果?开启表单保护后是什么效果?)
3、未开启表单保护时,点击 获取数据 ,也获取不到数据。(同上)


请您结合业务逻辑,在贴中详细的描述下期待的效果是什么?
并根据需求修改下您提供的demo中的代码,以便我们能更高效率的解决您的问题。
回复 使用道具 举报
咸鱼也有梦想
注册会员   /  发表于:2021-2-22 14:22:34
5#
lynn512 发表于 2021-2-22 14:11
demo已运行,从您的代码中未能理解需求,需要您先明确下自己的需求。

1、点击 添加表格,表格数据为空。 ...

您好,已经调整。不好意思,没注意描述。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-22 14:47:01
6#
好的,这边需要一定时间调研下,预计明天上午给您回复。
回复 使用道具 举报
咸鱼也有梦想
注册会员   /  发表于:2021-2-22 14:48:07
7#
lynn512 发表于 2021-2-22 14:47
好的,这边需要一定时间调研下,预计明天上午给您回复。

好的,谢谢
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-22 17:57:49
8#
本帖最后由 lynn512 于 2021-2-22 18:42 编辑

这边看了下您demo中的代码,对于一些代码逻辑并不太清楚,需要跟您确认下。
1、”模版设计完成是不允许编辑除了数据区域外的区域“
”数据区域“指的是哪个区域呢?设置代码允许表格自动扩展,表格区域实际是随着输入值一直在变化的。

2、”即表格生成成功,启用表单保护“
demo中无论是否开启了表单保护,表单保护实际都未生效,无法理解表单保护在此demo的作用。(开启前后都可以编辑单元格,不符合您描述的 不允许编辑 )

3、当选择‘开启表单保护锁定表头区域’点击‘添加表格’ 与   即表格生成成功,启用表单保护
我对上述红字的理解:开启表单保护 ---> 添加表格 ---> 开启表单保护
不明白上述操作想实现的效果是什么呢?

所以还是请您先明确下自己的需求,您提供的demo与描述中的需求存在差异,这不利于问题的快速解决。
请详细描述需求,这边看能否根据需求为您提供示例demo,您可以根据示例demo对现有demo调整。
或者调整现有demo,使代码逻辑与您描述的需求保持一致。



回复 使用道具 举报
咸鱼也有梦想
注册会员   /  发表于:2021-2-23 10:25:51
9#
lynn512 发表于 2021-2-22 17:57
这边看了下您demo中的代码,对于一些代码逻辑并不太清楚,需要跟您确认下。
1、”模版设计完成是不允许编 ...

这就是个简单的需求,不知道您说的还需要怎么去描述。您看,我是在设计一个填报的模版,这就是我需求的表头区域和数据区域。我设置完成是会去除多余部分只留下图中数据区和表头区。用户可以插入行来进行数据录入,不可以改变表头也就是模版。这难道不是需要开启表单保护?锁定表头区域,只有数据区域可进行编辑。次demo中我没有删除多余的行列,所以其他行列可以不管。我要的是在我锁定表头之后,还能正常表格正常插入行列,获取填报的数据。
7@CJ71M_4HVXNI6SELQ]TRN.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部