阿凡佬 发表于 2022-4-22 22:00:54

用JS设置行列布局可见状态

本帖最后由 阿凡佬 于 2022-4-23 13:31 编辑

乍一看标题,好像没啥用啊。听我讲讲先。。

是这样,我习惯于把一些变量隐藏在页面上,这样能使页面适用于多个状态,或者说具备多个功能吧。
就像这样

还有这样。。

(这其实是一个工具条)


以及这样



这时候我就有一个困扰了,调试的时候要是我忘记取消变量区的隐藏状态,我又得返回设计器找到那个页面取消隐藏。万一发布的时候我又忘记隐藏它,那我岂不是底裤都给用户看了吗。于是我想了个土办法

弄一个复选框,只对Admistrator显示,通过这个复选框控制行列的显隐状态。
但好麻烦啊!每个页面我要设置一个页面加载时命令,用于控制这个复选框的显隐状态(套娃,接着套娃)




于是我就在找一个一劳永逸的办法(懒是第一驱动力)


但是翻遍了手册,还是没找到关于控制行列显隐状态的API,于是我那天发了这么个帖子如何用JS控制某一列或一行的显示和隐藏状态? 结果还是没有答案,并且大佬们都在劝我用DOM操作。那好吧,开始折腾!!
(过程省略....)
于是被我给折腾出来了。。


现在按F12不仅能调出调试窗口,还能显示被我隐藏的行列,贼方便!

就这样吧。。分享源码





阿凡佬 发表于 2022-4-22 22:01:18

本帖最后由 阿凡佬 于 2022-4-22 23:31 编辑

我对文件里的几个方法补充下注释吧

ShowHidedArea(pageName) //显示页面中所有被隐藏的区域。通过遍历DOM找出被隐藏的列和行,调用ShowHidedRow方法和ShowHidedCol方法将其以一个固定宽高显示。pageName:被操作的页面名。

ShowHidedRow(pageName,RowNum)//显示被隐藏的行。pageName:被操作的页面名。RowNum:行号,即设计器中行号(从1开始,非Index)

ShowHidedCol(pageName,ColNameOrNum)//显示被隐藏的列。pageName:被操作的页面名。ColNameOrNum: 可以为列名例如:A\C\AA等字母排列;或者列号例如:1\3\27

然后创建全局事件监听绑定F12按键,判断用户是否为Administrator后执行ShowHidedArea(pageName)方法, pageName=当前页(Forguncy.Page.getPageName())

renho 发表于 2022-4-23 16:42:56

隐藏区域是不安全和影响页面性能的
可以适当用,别用太多
尽量使用服务端命令操作数据

alexyui 发表于 2022-4-23 10:53:32

:)大佬你就是懒!!!!我发现了!!!!

阿凡佬 发表于 2022-4-23 11:06:49

本帖最后由 阿凡佬 于 2022-4-23 11:08 编辑

alexyui 发表于 2022-4-23 10:53
大佬你就是懒!!!!我发现了!!!!
:$ 解放生产力,让开发人员更注重于业务流程,这不就是低代码的哲学么?

小侠米 发表于 2022-4-23 16:16:21

建议官方完善一下这个功能,特别是发布以后,可以有个特殊的管理,输入密码就可以显示隐藏区域:lol

阿凡佬 发表于 2022-4-23 21:15:34

renho 发表于 2022-4-23 16:42
隐藏区域是不安全和影响页面性能的
可以适当用,别用太多
尽量使用服务端命令操作数据

明白了,谢谢大佬提醒
页: [1]
查看完整版本: 用JS设置行列布局可见状态