1

子ポップアップ ウィンドウには、次のボタンがあります。

<asp:Button Style="width: 100%;" ID="Button2" runat="server" OnClientClick="RefreshParent()"
 OnClick="Button1_Click" Text="Select Study" />

OnClick 機能により、ユーザーはサイトのコンテンツ全体を変更するスタディを選択できます。この部分は正常に機能するため、リストされていません。

OnClientClick 関数は親ページを更新する必要がありますが、ページを手動で更新 (F5) しない限り、クライアント データは更新されません。これが RefreshParent コードです。

<script type="text/javascript">
    function RefreshParent() {
        window.opener.document.reload()
        window.close();
    }
</script>

関数で私も試しました:

window.opener.document.reload(true)

window.opener.document.href("home.aspx")

何も機能しませんでした。コード ビハインドまたは JavaScript を使用して、子ウィンドウからサーバー ポストバックを発生させる方法はありますか? ありがとう。

4

2 に答える 2

1

やってみました :

<script type="text/javascript">
    function RefreshParent() {
        window.opener.location.reload();
        window.close();
    }
</script>

OnClientClick で false を返すこともできます (ウィンドウを閉じているため、実際には問題ではありません)。

于 2013-02-07T21:29:53.377 に答える
0

ポップアップ ウィンドウの OnClick メソッドが実行される前に、親ページのリロードが行われていると思います。ポストバックが終了した後にリロード スクリプトを実行するには、ポストバック後に表示されるプレースホルダーでスクリプトをラップすることをお勧めします。

<asp:placeholder id="refresh_script" visible="false" runat="server">
  <script type="text/javascript">
    window.opener.location.reload();
    window.close();
  </script>
</asp:placeholder>

OnClick ハンドラーで:

refresh_script.Visible = true;

ボタンから OnClientClick ハンドラーを削除します。

于 2013-02-08T13:40:37.093 に答える