子窗口关闭刷新父窗口或者某个控件事件或者传递值到父窗口
2014-01-17 16:55
288 查看
做程序过程,经常遇到弹出新窗口设置或者编辑,关闭新窗口需要在父窗口中刷新部分控件或者数据,又不想刷新父窗口整个页面,因为父窗口部分输入或者部分操作会因为重新刷新重置。比如:通过弹出窗口来编辑和新增信息,当保存完成 子窗口关闭时自动刷新父页面上的一个gridview,将数据显示出来。通过jsp的 window.parent.opener.document.getElementById()解决这个问题。
例如:子窗口中关闭时JS代码,启动父窗口中控件btnQuery:
如果运行环境是.net,在父窗口中控件必须是html控件,然后通过父窗口JS函数调用父窗口C#函数,间接实现局部刷新的效果。
一、网页弹出对话框
在aspx文件中的html控件中调用即可,即<input type="button" id="btn" value="showDialog" onclick="showDialog(param1,param2)" />
param1,param2是两个参数,在调用时这两个值可动态生成,可使用<%# %>技术。
settings是用来设置弹出的对话框的一些状态,即宽度,高度,是否显示帮助按钮,是否显示状态栏,(但在IE中,设置状态栏的显示是没有用的,汗...)
推荐使用仿制百度弹出窗口:http://hi.baidu.com/chybing2008/blog/item/981fd92cc433ccea8b1399a4.html
二、当弹出的对话框对后台数据库作了改变时,需要刷新父页面时,请在弹出的对话框中引用下行代码:
Response.Write("<script language='javascript'>window.dialogArguments.location.reload();window.close();</script>");
该行代码是在服务器端执行的,若要在客户端执行的话,请直接调用:
window.dialogArguments.location.reload();window.close();即可。
三、把在对话框中获得的值传到父页面中
在网页对话框中直接调用该函数即可,agentId在调用时可动态设置
theForm及txtTo是父页的<form id="theForm"></form>中的ID值,txtTo是该窗体中的一个
<asp:TextBox id="txtTo" runat="server" />ID值。
补充:如果在网页对话框中要提交数据到后台文件执行,请在网页对话框(也是一个aspx文件)的头部加一句指令,加到<title></title>后部:
<base target="_self" />这样,在对话框中提交时就不会再提交到一个新的文件中了。
例如:子窗口中关闭时JS代码,启动父窗口中控件btnQuery:
function refreshParentData() { if(window.parent.opener != null) { var btn = window.parent.opener.document.getElementById("btnQuery"); if ( btn != null) btn.click(); else window.parent.opener.location.href =window.parent.opener.location.href; } }
如果运行环境是.net,在父窗口中控件必须是html控件,然后通过父窗口JS函数调用父窗口C#函数,间接实现局部刷新的效果。
一、网页弹出对话框
function showDialog(param1,param2...) { settings = "dialogWidth:450px;dialogHeight:600px;help:no;status:no"; mypage="dialogPage.aspx?param1="+param1+"¶m2="+param2+....; window.showModalDialog(mypage,window,settings); }
在aspx文件中的html控件中调用即可,即<input type="button" id="btn" value="showDialog" onclick="showDialog(param1,param2)" />
param1,param2是两个参数,在调用时这两个值可动态生成,可使用<%# %>技术。
settings是用来设置弹出的对话框的一些状态,即宽度,高度,是否显示帮助按钮,是否显示状态栏,(但在IE中,设置状态栏的显示是没有用的,汗...)
推荐使用仿制百度弹出窗口:http://hi.baidu.com/chybing2008/blog/item/981fd92cc433ccea8b1399a4.html
二、当弹出的对话框对后台数据库作了改变时,需要刷新父页面时,请在弹出的对话框中引用下行代码:
Response.Write("<script language='javascript'>window.dialogArguments.location.reload();window.close();</script>");
该行代码是在服务器端执行的,若要在客户端执行的话,请直接调用:
window.dialogArguments.location.reload();window.close();即可。
三、把在对话框中获得的值传到父页面中
function AddAgentId(agentId) { window.dialogArguments.theForm.txtTo.value = agentId; window.self.close(); }
在网页对话框中直接调用该函数即可,agentId在调用时可动态设置
theForm及txtTo是父页的<form id="theForm"></form>中的ID值,txtTo是该窗体中的一个
<asp:TextBox id="txtTo" runat="server" />ID值。
补充:如果在网页对话框中要提交数据到后台文件执行,请在网页对话框(也是一个aspx文件)的头部加一句指令,加到<title></title>后部:
<base target="_self" />这样,在对话框中提交时就不会再提交到一个新的文件中了。
相关文章推荐
- showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- C#中两个窗口怎么传递参数?或者怎么使用另一个窗口的控件呢?
- showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- 【轉載】showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- updatepanel控件中弹出子窗口,子窗口操作成功后自动关闭并刷新父页面
- showModalDialog/showModelessDialog实例,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口.关闭刷新父窗口
- 传递主窗口句柄或者控件给其他cpp使用
- 【iOS开发-88】事件传递原理解释哪个控件处理事件以及响应者链条的介绍
- VS 2005 C# 关闭子窗口 更新父窗口中的DataGridview控件
- 如何运用onunload事件判断浏览器是刷新还是关闭窗口
- VB的webbrowser控件捕获网页关闭事件
- Flex 中子窗口通过事件刷新父窗口中的数据(转)
- android控件之间事件传递
- 关闭IE窗口时执行事件
- 关闭模态子窗口的同时刷新父窗口的问题
- 在父窗口中得知window.open()出的子窗口关闭事件的方法