2017-07-28 128 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

相關問題