asp.net 点击子窗口顶部右上角的x关闭子窗口后,刷新父窗口,我表示我不会,求帮忙

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net 点击子窗口顶部右上角的x关闭子窗口后,刷新父窗口,我表示我不会,求帮忙相关的知识,希望对你有一定的参考价值。

不是按botton关闭窗口,注意!

参考技术A 在window.open或者window.showmodaldialog后面加上刷新当前页的方法追问

webform子窗体为
e.Row.Cells[7].Attributes.Add("onclick", "window.showModalDialog('DevPart.aspx?DevID=" + e.Row.Cells[0].Text + "','','dialogWidth:500PX;dialogHeight:420PX;scroll:no;status:no;center:true;help:No;location:no;)");

怎么加

追答

把onclick的事件写成一个函数
function aaa()

if(window.showModalDialog('DevPart.aspx?DevID=" + e.Row.Cells[0].Text + "','','dialogWidth:500PX;dialogHeight:420PX;scroll:no;status:no;center:true;help:No;location:no;))

执行刷新的方法,这里写的是js脚本,参数什么的你自己传递到js脚本中去

追问

window.close(); window.opener.location.reload() ;行吗

追答

不用加opener,我也不建议用reload
直接写window.location.href=指向当前页面就行了

追问

不行吧,这样子窗体会自动关闭把

追答

不会,会在子窗体关闭后执行,写在打开窗体的if里面

参考技术B window.onunload=function()
self.opener.location.reload(); //子窗口刷新父窗口

试试,你提问不明确没有说明是什么方式的子父窗口追问

webform子窗体为
e.Row.Cells[7].Attributes.Add("onclick", "window.showModalDialog('DevPart.aspx?DevID=" + e.Row.Cells[0].Text + "','','dialogWidth:500PX;dialogHeight:420PX;scroll:no;status:no;center:true;help:No;location:no;)");

怎么加

追答

你是关闭子窗体然后刷新父窗体,当然在'DevPart.aspx页面加
window.onunload=function()
window.returnValue ='refresh';//子窗口刷新父窗口

试试这个,上面的不行因为你是showModalDialog打开的

或者下面这句,不同的打开方式需要不同的方法

window.opener.loaction.href = window.opener.location.href

追问

试了,没有刷新

追答

你百度下你js刷新父窗口吧,看看你那是什么方式。方式不一样用的也不一样,上面的绝对可以,没刷新就是你写的问题了

参考技术C 是winform 还是 webform ?
如果是前者,你可以在Form_Closed 事件里执行刷新父窗体
或者在Form_Closing事件里追问

webform子窗体为
e.Row.Cells[7].Attributes.Add("onclick", "window.showModalDialog('DevPart.aspx?DevID=" + e.Row.Cells[0].Text + "','','dialogWidth:500PX;dialogHeight:420PX;scroll:no;status:no;center:true;help:No;location:no;)");

追答

如果是showModalDialog的话,你可以给子窗体的body里加上onunload事件
在里面执行刷新父页面
例如:

function winclose()
//在这里刷新父页面


追问

window.close(); window.opener.location.reload() ,运行的时候显示找不到location,脚本错误,父窗口没有刷新

追答

你前面需要改一下,
e.Row.Cells[7].Attributes.Add("onclick", "window.showModalDialog('DevPart.aspx?DevID=" + e.Row.Cells[0].Text + "','','dialogWidth:500PX;dialogHeight:420PX;scroll:no;status:no;center:true;help:No;location:no;)");
改成:
e.Row.Cells[7].Attributes.Add("onclick", "window.showModalDialog('DevPart.aspx?DevID=" + e.Row.Cells[0].Text + "',window,'dialogWidth:500PX;dialogHeight:420PX;scroll:no;status:no;center:true;help:No;location:no;)");
你试试

追问

window要加引号吗,照你那样出错了

追答

不用加引号啊,就是要传递父页面的window对象给子页面
你试试在子页面里通过window.dialogArguments获取该window对象
用它来取代window.opener

本回答被提问者和网友采纳

以上是关于asp.net 点击子窗口顶部右上角的x关闭子窗口后,刷新父窗口,我表示我不会,求帮忙的主要内容,如果未能解决你的问题,请参考以下文章

Extjs 窗口默认关闭按钮

DELPHI中MDI子窗口的关闭 和打开

delphi 请问:如何点了窗口右上解的关闭,程序不是关闭而且隐藏?

tkinter 关闭窗口怎么把整个程序都结束??

ASP.NET如何点击按钮后关闭当前窗口?

asp.net 如何 刷新并关闭父页面?