1. 概述
1.1 问题描述在填报应用中,如果数据量大的话,会用到填报分页,此时若是在填报中需要用到复选框全选控件,那么使用普通的 JS 实现复选框控件全选就不适用了,如下图,只会全选当页的数据:
如何实现填报分页下也可以使用所有页面的全选呢,如下效果:
1.2 实现思路因为普通的 JS 是通过检测当前页面的控件,然后进行全选或全不选,当使用分页时,JS 不会对未加载的页面生效,所以不适用。需要用到动态参数来对控件进行赋值。
2. 示例2.1
打开模板打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\WidgetExample\CheckBoxSelectAll.cpt
2.2 修改模板1)在 A2 单元格设置条件属性-分页,分页公式为&C2 % 5 ==0: 2)设置第 1 行为重复标题行: 3)添加模板参数 select:
4)设置 2 个复选框控件的值都为公式 =$select。 5)右击 J1 单元格添加超链接,新增动态参数: 6)将 A1 全选复选框的状态改变后事件修改如下:
代码如下:
- setTimeout(function(){
- $('td[id^=J1').children(".linkspan").click();
- },50);
复制代码
2.3 预览效果保存,进行填报分页预览,预览时地址栏后面加上&__cutpage__=v,PC 端实现效果下图所示:
注:此 JS 不支持移动端使用
3. 模板下载模板效果在线查看请点击:JS 实现填报分页下复选框全选.cpt 已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\36-JS实现填报分页下复选框全选.cpt 点击下载模板:36-JS实现填报分页下复选框全选.cpt
编辑于 2020-12-7 09:37
|