window.showModalDialog() + window.returnValue

功能要求:

  

     1.父页面 P1;子页面P2;

     2.在P2中保存内容到数据库,要求刷新P1,显示刚才保存的内容

 

实现方法:

 

    1.在P1中打开P2:

 

   function addAdvice(){ 

       //打开P2
       var sRet = window.showModalDialog(

            "<ww:url includeParams='none'value='/resources/innerTrainer/innerTrainnerOnlineCheckOpenUI.action'/>

             ?id=<ww:propertyvalue='trainerApply.applyUserId'/>", 'TrainerApply',

             'dialogHeight:500px;dialogWidth:600px;edge:sunken;center:Yes;

             help:No;resizable:No;status:No;scroll:Yes;unadorned:yes');
     

     //等待P2页面的返回值,进而跳转到UIaction,进而刷新P1

      if (sRet == "refresh") {
           window.location.href = "

              <ww:url includeParams='none'  value="/resources/innerTrainer/innerTrainerOnlineCheckUI.action" />

              ?id=<ww:property value='trainerApply.applyUserId' />"; 
       }
  }

 

    2.在P2页面中:

    function saveAdvice(){//保存修改内容,触发后台保存action
       var url = '<ww:url includeParams='none' value="/resources/innerTrainer/innerTrainnerOnlineCheck.action"/>

       ?  TApplyId=<ww:property value="#session.trainerApplyId"/>';
 

      document.innerTrainnerOnlineCheck.action = url;
      document.innerTrainnerOnlineCheck.submit(); 

    }

 

    3.保存成功后,在后台保存action里面存放一个标志属性:

    this.getHttpServletRequest().setAttribute("assign", "ok");

    页面跳转到P2

 

    4.在P2里面:

    <ww:if test="#request.assign == 'ok'" >       
     window.returnValue = "refresh"; //这个值将被P1里面的var rSet = window.showModalDialog()接收到
     window.close();
     </ww:if>

 

    5.当P1接收到P2的传值refresh,就会触发UIaction,进而实现刷新。

 

    注意:在子页面P2里面的head里面一定要写上<base target="_self" />

                这样才能保存不打开新的子页面,否则如果打开了新的子页面,var rSet没有值
        

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值