swejet 发表于 2021-7-2 12:29:23

其实楼主是想为数据验证附加上一个条件判断和动态设置数据验证。

对于为数据验证附加条件判断,7楼是正解,楼主在8楼说这是曲线救国,我个人觉得也不是,就这个场景来说,我个人觉得7楼的方法就是最佳实践。

楼主在10楼说的场景,我没有亲自验证一下,就是单元格隐藏后数据验证仍然有效,我又不能通过命令去取消数据验证,这就是动态设置数据验证的。

但是这应该难度比较大,通过命令取消数据验证应该还比较容易实现,但是只是取消吗?允不允许通过命令设置数据验证呢?这相当于把数据验证功能在编辑命令里重做了一遍,还要解决冲突的问题,即在单元格中设置了数据验证,在命令中又设置成了其他的验证,以哪个为准呢?感觉这个实现的可能性不大,基至是没有。

这样就会有一个矛盾,我为一个单元格设置了数据验证,在页面的生命周期中,我通过命令把设置了数据验证的单元格隐藏了,这时就麻烦了,我提交不了数据了,因为隐藏的单元格的数据验证还在起作用,可是用户又看不见,这就出BUG了



swejet 发表于 2021-7-2 12:33:07

不知道这样行不行,当动态设置隐藏时,要程序员人为判断一下隐藏的区域中有没有设置了数据验证的单元格,如果有,隐藏后为设置了数据验证的单元格设置一个默认值

在提交数据时,有数据验证单元格的数据不提交就行了。我理解数据验证是前端的验证,而提交数据是后端执行,感觉上应该可行

Timothy.Xu 发表于 2021-7-2 18:11:41

数据验证的逻辑是比较复杂的。我们已经有一个比较通用的解决方案,也就是我上面说的那个方案,其实程序开发也不外乎如此吧?如果这个时候还要去用很复杂的逻辑去决定每个单元格的数据验证是否生效,这样对性能也是一个影响,而用命令去做一个判断,我想应该是比较简单的方案了,而且还更灵活,楼主希望隐藏的单元格不验证,也许也有人希望这个格子只是填写完被隐藏,但是依然触发验证,这都是有可能的。那用自定义公式不是最自由;P

dl1024 发表于 2021-7-3 09:07:57

Timothy.Xu 发表于 2021-7-2 18:11
数据验证的逻辑是比较复杂的。我们已经有一个比较通用的解决方案,也就是我上面说的那个方案,其实程序开发 ...

多谢版主的详细解答,每个功能的设置都是让人仁者见仁,智者见智。。

Simon.hu 发表于 2021-7-5 17:22:21

所以活字格才有了无限的可能性:loveliness:
页: 1 [2]
查看完整版本: 在【设置单元格属性】中添加“可为空”“不可为空”选项