如何打印页面并自动关闭?
我通过单击按钮打开一个新窗口/页面:
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&SelId=9" type="application/pdf">
我想因为这个进程插件,我不能关闭这个窗口。