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 回答