前面分享了在报表中需要获取控件所在行号,以用来获取所在行上的数据信息的业务需求,在前面分享的是用按钮控件用来获取当前所在行的,当实际应用中,我们还有可能用到其他多种控件,如:文本控件、数字控件、密码控件、下拉框控件、下拉复选框控件、单选复选框控件、复选框组控件、日期控件、文件控件、下拉树控件等等多种控件,前面分享的按钮控件是通过 $btn 来获取按钮控件所在行的,其他控件用的就会有所不一样了,下面把目前主要用到的控件类型以及获取所在行时代码的写法分享一下。
1、报表界面设计
2、javascript事件编辑:
各控件所用代码基本相似,此处截图示例文本控件的代码,其他控件的相关代码在下面罗列:
(一)文本控件:
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,1,rownum);
(二)文本域控件:
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,2,rownum);
(三)数字控件:
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,3,rownum);
(四)密码控件:
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,4,rownum);
(五)按钮控件:
var $td=$(this.$btn).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,5,rownum);
(六)复选框控件:
var $td=$(this.$btn).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,6,rownum);
(七)单选复选框控件
var $td=$(this.$container).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,7,rownum);
(八)复选框组控件
var $td=$(this.$container).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,8,rownum);
(九)下拉框控件
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,9,rownum);
(十)下拉复选框控件
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,10,rownum);
(十一)日期控件
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,11,rownum);
(十二)文件控件
var $td=$(this.$uploadForm).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,12,rownum);
(十三)列表控件
var $td=$(this.element).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,13,rownum);
(十四)网页控件
无
(十五)下拉树控件
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,15,rownum);
(十六)视图树控件
var $td=$(this.element).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
contentPane.setCellValue(3,16,rownum);
3、效果图:
如上,在报表的实际应用中,就可以使用多种控件,通过用javascript获取控件当前行的部分或全部数据,进而传给数据接口等,控制性地对数据处理、储存等操作,提供了开发的方便性,提高效率;解决公式获取到的是数组的问题,也解决了数据入库总是要整个页面进行入库时耗时长、占用内存大的问题。