web开发--重写表格全选按钮事件原创
金蝶云社区-余路生
余路生
2人赞赏了该文章 461次浏览 未经作者许可,禁止转载编辑于2022年03月21日 14:25:06

如下图,全选后"快速审批按钮"不显示了

1.png


我们先来调试找到原因,按钮被隐藏了,估计是通过设置元素的属性控制的,那就先定位元素:

2.png

3.png


由上面两图可知,是通过设置style="display: none;"实现隐藏的, 那怎么找到设置隐藏的代码呢,

监听DOM属性改变事件就行,如下图:

4.png


打断点后通过堆栈就能找到js方法

5.png

6.png


这样就找到控制隐藏"快速审批"按钮的方法了, 问题来了,这是标准的方法,怎么修改呢,

我们先看一下配置页面

10.png

发现配置页面并没有全选按钮,也就是不能在配置页面直接给全选按钮添加重写的方法。

不怕,老哥找到了重写的方法。

方法如下:

1、添加页面打开后事件

7.png


2、重写全选按钮事件

8.png

代码:

          //重写表格全选框afterSelectAll事件
          waf("#queryGrid").wafGrid("option","afterSelectAll",function(event){
                  var ishidden = true;
                  waf("#btnViewBill").wafLinkButton("option","hidden",ishidden);
                  waf("#btnWfDiagram").wafLinkButton("option","hidden",ishidden);
                  waf("#btnApproveDetail").wafLinkButton("option","hidden",ishidden);
                  waf("#btnDeliver").wafLinkButton("option","hidden",ishidden);
                  waf("#btnPass").wafLinkButton("option","hidden",ishidden);
                  //注释隐藏快速审批按钮方法
                  //waf("#btnQuickApprove").wafLinkButton("option","hidden",ishidden);
          });                 
         
          //重写表格全选框afterCancelSelect事件
          waf("#queryGrid").wafGrid("option","afterCancelSelect",function(event){
                  var ishidden = false;
                  waf("#btnViewBill").wafLinkButton("option","hidden",ishidden);
                  waf("#btnWfDiagram").wafLinkButton("option","hidden",ishidden);
                  waf("#btnApproveDetail").wafLinkButton("option","hidden",ishidden);
                  waf("#btnDeliver").wafLinkButton("option","hidden",ishidden);
                  //注释显示传阅按钮方法
                  //waf("#btnPass").wafLinkButton("option","hidden",ishidden);
                  waf("#btnQuickApprove").wafLinkButton("option","hidden",ishidden);
          });


重写afterCancelSelect方法把"快速审批"按钮显示出来就可以了

9.png


赞 2