JS获取复选框选中行的单元格值

目录:

1. 问题描述

对于填报模板,如何获取某些单元格的数据,如下图所示,希望获取复选框选中的那几行中的值,然后做一些处理。
以下说明制作过程。

2. 实现思路

点击“对账”按钮时,使用js我们先获取到选中的复选框(被选中的复选框有一个class类x-checkbox-checkon)所在单元格td,从而获取复选框所在行tr,然后取得行中产品名称,订购量以及在订购量所在单元格的值,并将这些值保存进预定义好的数组中,这样我们就可以引用最终的数组来引用所需的数据了。
根据模板是否设置冻结,其获取复选框选中行单元格的方式有所不同,下面我们分开介绍。

3. 没设置冻结的模板

3.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm.cpt
3.2 复选框设置
在扩展数据的左边增加一个复选框,此为A3单元格,并设置左父格为B3,即每条数据左边都有一个复选框。
3.3 按钮以及JS设置
设置D5单元格的控件类型为按钮,按钮类型为普通,按钮名称为对账,然后给按钮增加点击事件,具体的JS如下:
var products = []; var ordernums = []; var ordernums1 = []; var $span = $('.fr-checkbox-checkon'); //获取选中的复选框 var $tds = $("td").has($span); //定义选中复选框的单元格 var $trs = $("tr").has($tds); for(var i=0; i<$trs.length;i++){ var product = $("td:eq(2)",$($trs[i])).html(); //获取选中的C3单元格的值 products.push(product); //将选中的值放到数组中 var ordernum = $("td:eq(8)",$($trs[i])).html(); //获取选中的H3单元格的值 ordernums.push(ordernum); var ordernum1 = $("td:eq(9)",$($trs[i])).html(); //获取选中I3单元格的值 ordernums1.push(ordernum1); } alert(products + ";" + ordernums + ";" + ordernums1);
3.4 填报预览
保存模板,并点击填报预览,选中若干行,点击对账按钮,即可看到选中的对应单元格的值弹出显示了,如下图:

222

4. 设置了冻结效果的模板

4.1 填报冻结设置
打开上述已经制作好的模板,点击模板>重复与冻结设置,在填报冻结模块设置冻结行列,如下图:

222

4.2 按钮js设置
选择D5单元格中的按钮控件,修改其点击事件js,如下:
var products = []; var ordernums = []; var ordernums1 = []; var $span = $('.fr-checkbox-checkon'); var $tds = $("td").has($span); var $trs = $("tr").has($tds); for(var i=1; i<$trs.length;i++){ var row = $("td:eq(0)",$($trs[i])).attr("row"); products.push(contentPane.getCellValue(2,row)); ordernums.push(contentPane.getCellValue(7,row)); ordernums1.push(contentPane.getCellValue(8,row)); } alert(products + ";" + ordernums + ";" + ordernums1);
4.3 效果查看

点击填报预览,即可看到如上图没设置冻结属性时的效果。

附件列表


主题: 二次开发
标签: 已验证

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(微信ID:frbiaoge)