Javascript:强制aspx父页面到服务器刷新

时间:2013-02-07 20:58:45

标签: javascript asp.net postback code-behind

在子弹出窗口中,我有以下按钮。

<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的子窗口回发?感谢。

2 个答案:

答案 0 :(得分:1)

你试过了吗?

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

你可能还想在OnClientClick中返回false(当你关闭窗口时不是真的)

答案 1 :(得分: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处理程序。