【问题标题】:Javascript: Force aspx parent page to server refreshJavascript:强制aspx父页面服务器刷新
【发布时间】:2013-02-07 20:58:44
【问题描述】:

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

<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?谢谢。

【问题讨论】:

标签: javascript asp.net postback code-behind


【解决方案1】:

你试过了吗:

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

您可能还想在 OnClientClick 中返回 false (在您关闭窗口时这不是问题)

【讨论】:

  • 确认!对不起,我的意思是在所有这些中输入位置。 window.opener.document.reload() 甚至不起作用。我想我在输入这个问题时进入了自动驾驶仪。所以是的,你的问题的答案是肯定的,我已经试过了。
【解决方案2】:

我认为正在发生的事情是您的父页面的重新加载是在您的弹出窗口 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 处理程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-21
    • 2021-10-28
    • 1970-01-01
    • 2016-12-30
    • 2010-12-04
    • 2021-05-24
    • 1970-01-01
    • 2013-01-18
    相关资源
    最近更新 更多