2017-07-28 19 views
0

更新ボタンがあるgridviewを持つaspxページがあります。更新ボタンをクリックすると、ポップアップウィンドウが開きます。 2番目のaspxページ(ポップアップウィンドウ)には、削除ボタンのフィールドがあります。削除ボタンをクリックすると、2番目のaspxページが閉じられ、最初のaspxページの行がgridviewから削除されます。私は手動でページを更新するまで行がグリッドビューから削除されているのを見ることができません。ポップアップウィンドウを閉じた後に親ページを更新する

2番目のページ(ポップアップウィンドウページ)を閉じた直後に、親ページ(グリッドビューを持つページ)を更新するにはどうすればよいですか?私はこれを試みたが、うまくいきませんでした:

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

UR1の代わりにコードを書くと、それが役に立ちます。 – Ravikumar

+0

あなたは 'window.postMessage'を見てみたいと思うかもしれません。もっと良い解決策になると思います。 –

答えて

0

あなただけonbeforeunloadまたはonunloadイベントにポップアップウィンドウに

window.opener.location.reload(); 

を追加し、ポップアップウィンドウでwindow.openerを使用することができます。それはクロームでは動作しません、それは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); 
} 

第2の解決策は、すべてのブラウザで動作します。

+0

このjsコードをaspxページに追加しました:function close(){ \t \t var page = null; \t \t function openPopUp(){ \t \t page = window.open( "popupPageName.aspx"、 "windowName"); \t \tたsetInterval(関数(){ \t \t IF(ページ= NULL && page.closed){ \t \t window.location.reload()} \t \t!}、100)。 } と私はこのC#コードを行った:Response.Write( ""); ポップアップウィンドウが閉じますが、閉じた後に親ページをリフレッシュしません – ITDeveloper

+0

私はaspxに慣れていませんが、別の関数で提供したコードをコピーしました。つまり、 'close'関数を実行すると、' openPopUp'が '実行される。 [jsfiddle](https://jsfiddle.net/m3qupvwe/)を見てください。単純なボタンをクリックして作成しました。新しいポップアップウィンドウが開き、ボタンのテキストがTestに変わります。ポップアップウィンドウを閉じると、ボタンは古い値を取得します。つまり、ページがリロードされたことを意味します:) – Niroda

関連する問題