2017-07-28 151 views
0

我有aspx页面,其中有一个gridview,其中有一个更新按钮。当我点击更新按钮弹出窗口打开。第二个aspx页面(弹出窗口)有一个删除按钮。当我点击删除按钮关闭第二个aspx页面,并从第一个aspx页面的gridview中删除该行。我无法看到该行已经从gridview中删除,直到我手动刷新页面。关闭弹出窗口后刷新父页面

如何在关闭第二页(弹出窗口页面)后立即刷新父页面(具有gridview的页面)?我试过,但没有奏效:

Response.Write("<script>window.close();</" + "script>"); 
Response.Write("<script>window.opener.location.reload();</" + "script>"); 
+0

请参阅:https://stackoverflow.com/questions/1318006/reload-parent-window-from-child-window –

+0

编写代码而不是URl它将是有帮助的。 – Ravikumar

+0

你可能想看看'window.postMessage'我认为这将是更好的解决方案 –

回答

0

可以在弹出窗口中使用window.opener,只需添加

window.opener.location.reload(); 

在弹出窗口上onbeforeunloadonunload事件。但这不适用于Chrome,它适用于Firefox。

你身边的另一件作品可以用setInterval检查弹出窗口在主网页关闭或不:

var page = null; 
function openPopUp() { 
    page = window.open("desiredPage.html","windowName", "width=200,height=200"); 
    setInterval(function() { 
     if(page != null && page.closed) { 
      window.location.reload(); 
     } 
    }, 1000); 
} 

其次解决方案适用于所有浏览器。

+0

我在aspx页面中添加了这个js代码:function close(){ \t \t var page = null; \t \t function openPopUp(){ \t \t page = window.open(“popupPageName.aspx”,“windowName”); \t \t的setInterval(函数(){ \t \t如果(页面= NULL && page.closed){ \t \t window.location.reload()} \t \t!},100); } 我做了这个C#代码:Response.Write(“”); 弹出窗口关闭但关闭后不会刷新父页面 – ITDeveloper

+0

我对aspx不熟悉,但您复制了我在另一个函数中提供的代码,这意味着当您执行'close'函数时,'openPopUp'赢得'被执行。 看看[jsfiddle](https://jsfiddle.net/m3qupvwe/)当我点击它时,我创建了一个简单的按钮,一个新的弹出窗口会打开,按钮文本将被更改为测试,当你关闭弹出窗口的按钮'会得到旧值,这意味着页面重新加载:) – Niroda