3

如何打印页面并自动关闭?

我通过单击按钮打开一个新窗口/页面:

protected void ASPxButton_GenerOrd_Click(object sender, EventArgs e)
{
         string AdrUrl = "Print_Ordo.aspx?SoinId=" + Soin_Id + "&SelId=" + TempId;
        ClientScript.RegisterStartupScript(this.GetType(), "newWindow", String.Format("<script>window.open('{0}');</script>", AdrUrl));
    }

我的 Print_Ordo.aspx :

<head runat="server">
    <title></title>
     <script>         window.print(); window.close();</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <dx:ReportViewer ID="ReportViewer_Ordo" runat="server">
        </dx:ReportViewer>
    </div>
    </form>
</body>
</html>

和我的 Print_Ordo.aspx.cs:

public partial class Print_Ordo : System.Web.UI.Page
{

    string Soin_ID = "", SelectedID = ""; 
    protected void Page_Load(object sender, EventArgs e)
    {
        Soin_ID = Request.QueryString["SoinId"];
        SelectedID = Request.QueryString["SelId"];
        //ReportViewer_Ordo.Report = new XtraReport_Ordo(Convert.ToInt32(Soin_ID), SelectedID);
        //ReportViewer_Ordo.PageByPage = false;

        var xtraReport_Pricipal = new XtraReport_Ordo(Convert.ToInt32(Soin_ID), SelectedID);

        using (MemoryStream ms = new MemoryStream())
        {
            try
            {
                PdfExportOptions opts = new PdfExportOptions();
                opts.ShowPrintDialogOnOpen = true;
                xtraReport_Pricipal.ExportToPdf(ms, opts);
                ms.Seek(0, SeekOrigin.Begin);
                byte[] report = ms.ToArray();
                Page.Response.ContentType = "application/pdf";
                Page.Response.Clear();
                Page.Response.OutputStream.Write(report, 0, report.Length);
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
            finally
            {
                ms.Close();
            }
        }


    }
}

问题是它不会自动关闭。我试过:

self.close();
window.close();
top.close();

这些都不起作用。有任何想法吗?

PS:当我通过 Firebug 看它时:

<embed width="100%" height="100%" name="plugin" src="http://172.18.1.253:4001/source/Print_Ordo.aspx?SoinId=4&amp;SelId=9" type="application/pdf">

我想因为这个进程插件,我不能关闭这个窗口。

4

1 回答 1

2

你可以试试这个 -Focus在关闭之前添加窗口

<script type="text/javascript">
    window.print();
    window.onfocus = function() { window.close(); }
</script>
于 2012-09-18T13:50:29.773 回答