3

我在按钮单击事件的末尾有一些代码,该事件使用 RegisterStartupScript 打开一个新的 Windows(它是一个供用户打印的报告)

页面加载后,我想将用户从数据输入页面重新引导回默认页面,但如果我在其中输入一个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();
}

4

1 回答 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;
}
于 2012-10-29T15:18:10.520 回答