关闭

如何用window.showModalDialog打开弹出子窗口,并在子窗口关闭时刷新父窗口

3102人阅读 评论(0) 收藏 举报

在父页面usermanager.jsp中打开子窗口updateuser.jsp,并在在子窗口关闭时刷新父窗口。

要做的功能是:
如何用window.showModalDialog打开弹出子窗口,并在子窗口关闭时刷新父窗口 - 小川哥 - 我的博客
父页面usermanager.jsp

如何用window.showModalDialog打开弹出子窗口,并在子窗口关闭时刷新父窗口 - 小川哥 - 我的博客
子窗口updateuser.jsp

在点修改的时候,弹出子页面(里面包含此用户的信息)
如何用window.showModalDialog打开弹出子窗口,并在子窗口关闭时刷新父窗口 - 小川哥 - 我的博客
在子页面中,修改完点保存的时候,保存数据,自身关闭,父页面刷新,以显示修改后的数据

功能清楚了,下面我就来实现它!!

 

点 修改时弹出子窗口的代码(用window.showModalDialog主要是让用户必须点此修改响应后才能做其他的任务):

<a href="#" onClick="window.showModalDialog('userupdate.do?userid=<%=lo_dt.uf_GetValue(i, 0)%>',window,'dialogWidth:480px;dialogHeight:180px;status:no;')">修改</a>


userupdate.do中是根据传过去的用户ID取用户的信息,然后再mapping.findforward()到子窗口updateuser.jsp ,在此窗口是显示用户的其他信息。

在子窗口中点保存修改,并刷新父窗口的代码:注意提交方式是在一个iframe中隐式提交 的
<iframe name="commitArea" style='display:none;'></iframe>
<form action="usersave.do" method="post" target="commitArea">

<input type="button" value="保存" onClick="check();">
</form>

<script>
    function check(){
     var obj = document.getElementById("user_dm");
     var obj1 = document.getElementById("user_pwd");
     var obj2 = document.getElementById("user_mc");
     if(obj.value == "" || obj1.value=="" || obj2.value==""){
      obj.focus();
      alert("用户账号、用户名称、用户密码均不能为空!");
     }else{
      document.forms[0].submit();   //提交保存 修改后的数据,usersave.do来保存并mappinf.findforware返回到显示用户列表页面
      window.dialogArguments.window.location="user.do"; //刷新父窗口以显示修改后的数据
       self.close(); //关闭自己
     }
    }
   </script>

这样就可以了吗?经实验查正,确实是可以的。不过还存在一个问题,就是在机子配置比较好的时候,保存的比较快,在刷新父窗口取最新值时,可以取到最新值,但当机子配置比较低时,取到的值还是老数据。这是因为刷新页面的动作 发生 在action里修改保存 之前了!!

如何保证刷新时,已经修改保存完成了呢??

加子页面一个标志变量!!

就是在保存修改的action里面

执行更新语句
request.setAttribute("updateuserok","修改成功");
根据用户ID重新查询用户的信息,保存到request里面,mapping.findforware()到子页面,

在子页面里判断此变量是否存在,并刷新父页面,关闭自己。

<logic:present name="updateuserok">
    <script>
    alert("保存成功!");
    window.dialogArguments.window.location="user.do";
    self.close();
</script>
   </logic:present>

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:72948次
    • 积分:1149
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:105篇
    • 译文:0篇
    • 评论:11条
    文章分类