JS实现删除行前先确认

编辑
  • 文档创建者:文档助手1
  • 浏览次数:9569次
  • 编辑次数:15次
  • 最近更新:zack 于 2019-09-13
  • 1. 描述

    在对行式填报表进行操作时,希望实现如下图所示的效果即点击删除行按钮时,弹出确认删除对话框,若点击确认则删除数据并提交入库;若点击取消,则不执行任何操作。



    2. 思路

    通过给删除行按钮增加一个点击事件,在 JS 中通过返回值的不同来实现不同操作。

    可以通过 contentPane.deleteReportRow()方法进行间接的删除二次确认的操作,方法请参考:删除行操作提示并二次确认


    3. 操作步骤

    1)报表设计如下:

    以模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\42-JS实现插入自定义行数.cpt为例,报表样式如下:


    2)最后一列的按钮设置为删除按钮:


    3)为控件添加点击事件


    JS 代码如下:


    if(confirm("确认删除"))   //弹出确认删除对话框  
    {
      setTimeout(function() { 
         _g('${sessionID}').writeReport();   //执行提交入库操作
        }, 2000);
      return true;    //点击确定时,返回值为true,执行如上操作。
    }
    else
    {
       return false; //点击取消时,返回值为false,不执行操作。
    }

    注:删除行操作默认过程是页面先删除选中的行,再提交入库,因此需要延迟 2 秒,等页面删除了数据后再执行提交入库事件。


    4. 预览效果

    4.1 PC 端预览效果



    4.2 移动端预览效果

    注:经测试,移动端不支持此 JS

          但是移动端可以通过其他写法实现类似效果:插入删除行正常添加,另外加一个普通按钮图标文字跟删除行设置成一样,按钮的点击事件写成:

    var location = 'E'+delRow;//拼接真正的删除行按钮位置var content = "确认删除第"+delRow+"行数据?";//拼接提示信息FR.Msg.confirm("",content,function (result) {	if(result){		    contentPane.getWidgetByCell(location).fireEvent("click");//触发真删除行按钮的点击事件		     }})

    然后隐藏删除行所在列。下面是demo模板

    WorkBook1.cpt

    5. 已完成模板

    模板效果在线查看请点击:JS 实现删除行前先确认.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\45-JS实现删除行前先确认.cpt

    点击下载模板


    附件列表


    主题: 二次开发
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]