如何在弹出页面关闭时重新加载父页面

时间:2014-11-03 12:46:08

标签: javascript c# asp.net

public static string PopUpParentPage
{
    get
    {
        if (HttpContext.Current.Session["PopUpParentPage"] == null)
        {
           return (string.Empty);
        }
        else
        {
            return (string)(HttpContext.Current.Session["PopUpParentPage"]);
        }
    }
    set
    {
        HttpContext.Current.Session["PopUpParentPage"] = value;
    }
}

我有上面的代码让我成为弹出窗口的父级。

以下是我如何从父窗口中的链接按钮点击事件打开弹出窗口

protected void lnkOpenPopUp_Click(object sender, ImageClickEventArgs e)
 {
    string strScript = "<script>fnChangeLocationPopup();</script>";
    this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "openPopup", strScript);
}

这也是我通过点击弹出页面上的按钮关闭弹出窗口的方法

protected void btnClosePopUp_Click(object sender, ImageClickEventArgs e)
  {
    string strScript = "<script>fnChangeLocationPopup();</script>";
    this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "closePopup", strScript);
}

现在我想要的是重新加载父页面以便刷新数据。如果我在上面的第一个代码片段中知道父页面URL的值为retrieve,那么一旦弹出窗体关闭,如何在btnClosePopUp_Click上刷新它?

3 个答案:

答案 0 :(得分:0)

Javascript:在您的函数fnChangeLocationPopup()写下代码

 window.location.reload();

<强>代码隐藏:

Response.Redirect(Request.RawUrl);

这将重定向到同一页面。

答案 1 :(得分:0)

您可以使用以下代码获取弹出页面的Close事件。 并编写一个代码,使用.parent属性重新加载父窗口,如下所示。

<script type="text/javascript">
        window.onbeforeunload = closePopup;
function closePopup(){
window.parent.location.reload();
}
</script>

将上面的代码放在<head>标记中的弹出页面中。

答案 2 :(得分:0)

试试这个javascript

function myfunction() {
        if (window.opener != null) {
            opener.location.reload(true);
            window.close();
        }
    }