在子弹出窗口中,我有以下按钮。
<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的子窗口回发?感谢。
答案 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处理程序。