用showModelessDialog弹出修改页面,提交后到action中处理,如果成功传递成功字符串,然后跳到到修改页面,在页面上判断如果成功刷新父页面,并且关闭子窗口子页面代码
         String sign = (String)request.getAttribute("sign"); function closeWinBysign(){
var sign = <%=sign%>;
if(sign=='1'){
parent.window.opener=null;  
parent.window.dialogArguments.location.href=parent.window.dialogArguments.location; window.close();
}
}
子页面onload时候调用closeWinBysign()现在子页面表单提交后是可以关闭了,但是怎么就不能刷新父页面的呢?而且同样的方法我在另外一个功能里面用可以实现,不同的地方就是那边用的ajax做的,没有跳转action处理

解决方案 »

  1.   

    parent.window.dialogArguments.location.href=parent.window.dialogArguments.location;这句是啥意思呢?
    直接window.opener.location.reload();window.close();不行吗?
      

  2.   

    如果经过查询页面产生的列表页面用reload()会弹出是否重复提交表单的提示框
      

  3.   

    而且showModelessDialog弹出的页面用window.opener也不对的啊
      

  4.   

    你现在是sign这个值没取到吗?还是取到了,但是执行不了更新?
      

  5.   

    那用parent.window.location.reload()可以吧?看你的意思应该是在模态窗口里面进行的表单提交,那这样的话刷新父窗口应该是没什么问题的。
      

  6.   

    sign这个值取到了的,而且子页面也可以自动关闭的,就是刷新不了父页面
    但是我在另外一个地方也这样做的,就可以刷新父页面的呢,代码如下
    function formSubmit() {

    $.ajax({
         url: '<%=contextPath>/archivemanage/classification/AmHaClassificationAction.do',
         type: 'POST',
         data: url,
         dataType: 'text',
         timeout: 1000,
         error: function(){
            alert('网络异常');
         },
         success: function(text){
           parent.window.opener=null;   parent.window.dialogArguments.location.href=parent.window.dialogArguments.location;
          window.close();
         }
      });
    }
      

  7.   

    这个两个不同的地方,就是一个是通过ajax提交处理(可以实现刷新父页面),另外一个是表单提交action  不一样的地方,就不知道是不是这个原因