在打开新窗口后重定向ASP.net页面

3

我在一个按钮点击事件的末尾编写了一些代码,使用RegisterStartupScript打开一个新的窗口(是为用户打印报告的)

页面加载完成后,我想将用户从数据输入页面重定向回默认页面,但如果我在其中放置Response.Redirect,它就不会打开我的弹出窗口。 有什么想法,为什么弹出窗口不会触发?

这是C#代码:

string myRptURL = "EstimateReport.aspx?id=" + hiddenID.Value;
                string script = "window.open('" + myRptURL + "','')";

                ClientScript.RegisterStartupScript(this.GetType(), "OpenWin", "<script>openNewWin('" + myRptURL + "')</script>");
                Response.Redirect("default.aspx?mess=" + Server.UrlEncode("New Estimate Created"));

以下是JavaScript函数:

<script language="javascript" type="text/javascript">

function openNewWin(url) {
    var x = window.open(url, 'mynewwin', '_blank', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=520,modal=yes,alwaysRaised=yes');
    x.focus();
}

1个回答

3

Response.Redirect会取消脚本,因为它没有被发送到客户端。建议使用JavaScript进行重定向。

ClientScript.RegisterStartupScript(this.GetType(), "OpenWin",
 "<script>openNewWin('" + myRptURL + "','" + "default.aspx?mess=" +
 Server.UrlEncode("New Estimate Created") + "')</script>");

function openNewWin(url, redirectUrl) {
    var x = window.open(url, 'mynewwin', '_blank', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=520,modal=yes,alwaysRaised=yes');
    x.focus();
    window.location = redirectUrl;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接