JS实现删除行按钮只有一行时不能删除 朴灿烈づ我的快乐病毒、 2021-12-19 02:07 258阅读 0赞 1. 描述 在填报中,在可以添加行和删除行的时候,但是有时候因为人为因素的原因误将第一行也删除掉了,所以导致无法提交,只能重新填写。 为了减少此类事故的发生,我们就需要控制删除按钮不能删除第一行,实现效果如下图: ![/images/20211219/c2932b7fb15440e3a805956a235912a8.png][https_help.finereport.com_uploads_201812_1544495442uwqMb70w.gif] 2. 解决方案 可以通过 JS 或者设置条件属性来解决。 3. 方法一 3.1 数据集设置 打开模板:%FR\_HOME%\\webapps\\webroot\\WEB-INF\\reportlets\\doc\\Form\\LineForm\\填报控件.cpt 便于测试让数据只显示一行,则将数据集修改为:SELECT \* FROM 产品 order by 产品ID limit 1,如下图所示: ![/images/20211219/e57d4e39abc94e21ad927f00300ff381.png][https_help.finereport.com_uploads_201812_1544495466uIJLlhRy.png] 3.2 模板设置 在L3单元格中添加按钮控件,按钮类型分别为:插入行,指定单元格为:B3,如下图所示: ![/images/20211219/9f7b3f95d1d6436d81e2440456a65399.png][https_help.finereport.com_uploads_201812_1544495483TXWYsXwy.png] 同理M3中也添加按钮控件,类型为:删除行,制定单元格为:B3,设置控件名为sc1,不可用状态,如下图所示: ![/images/20211219/cd03e285364e4cd4a0c4bcea57ec004e.png][https_help.finereport.com_uploads_201812_1544495497XUssYABC.png] 注:如果模板里还有其他的删除行按钮,也要实现相同的效果,依次命名为sc2、sc3等等 3.2 添加 JS 事件 点击模板>模板web属性>填报预览设置,选择为该模板单独设置,然后添加加载结束事件如下图: ![/images/20211219/d7ca64b8b9b9494b94789697b8b28add.png][https_help.finereport.com_uploads_201812_1544495515EpSB2yKg.png] var arr=\["sc1"\];//sc1为控件名 for(j=0;j<arr.length;j++)\{ //遍历获取数组内控件 var self=contentPane.getWidgetsByName(arr\[j\]); var flag=0; for (i=0;i<self.length;i++)\{ var tr=self\[i\].element.parent().parent().css("display"); if(tr=="table-row")\{ flag++; \} \} if(flag==1)\{ //判断如果只剩下一个控件则设定为不能被删掉 for (i=0;i<self.length;i++)\{ var tr2=self\[i\].element.parent().parent().css("display"); if(tr2=="table-row")\{ self\[i\].setEnable(false); \} \} \} else\{ //如果不止一个控件则可以进行删除操作 for(i=0;i<self.length;i++)\{ self\[i\].setEnable(true); \} \} \} 4. 方法二 以上个模板为例,去掉JS事件,M3单元格的删除控件变为可用状态,并添加条件属性。 属性为:控件,默认不使用控件,设置公式为:row()=3,代表第三行删除按钮不可用,即可达到数据列第一行数据不可删除的效果,如下图所示: ![/images/20211219/4385fc9ecb6e4a02b4b2060184f7eda9.png][https_help.finereport.com_uploads_201812_15444955302vK5WGnf.png] 5. 保存预览 保存模板,选择填报预览,即可实现上图所示的效果。 **标签:** 暂无标签 **编辑/添加标签** [https_help.finereport.com_uploads_201812_1544495442uwqMb70w.gif]: /images/20211219/c2932b7fb15440e3a805956a235912a8.png [https_help.finereport.com_uploads_201812_1544495466uIJLlhRy.png]: /images/20211219/e57d4e39abc94e21ad927f00300ff381.png [https_help.finereport.com_uploads_201812_1544495483TXWYsXwy.png]: /images/20211219/9f7b3f95d1d6436d81e2440456a65399.png [https_help.finereport.com_uploads_201812_1544495497XUssYABC.png]: /images/20211219/cd03e285364e4cd4a0c4bcea57ec004e.png [https_help.finereport.com_uploads_201812_1544495515EpSB2yKg.png]: /images/20211219/d7ca64b8b9b9494b94789697b8b28add.png [https_help.finereport.com_uploads_201812_15444955302vK5WGnf.png]: /images/20211219/4385fc9ecb6e4a02b4b2060184f7eda9.png
还没有评论,来说两句吧...