我想要制作html打印功能但是已经在aspx表单中定义和显示的图像在html打印表单中不存在
图片包含在QuotePanel
中这是aspx表单中的图像定义
<tr>
<td style="text-align: center">
<asp:Image ID="Image1" runat="server" Height="70px"
ImageUrl="~/abc.jpg" Width="700px" />
</td>
</tr>
这是
背后的代码public static void PrintWebControl(Control ControlToPrint)
{
StringWriter stringWrite = new StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
if (ControlToPrint is WebControl)
{
Unit w = new Unit(100, UnitType.Percentage);
((WebControl)ControlToPrint).Width = w;
}
Page pg = new Page();
pg.EnableEventValidation = false;
HtmlForm frm = new HtmlForm();
pg.Controls.Add(frm);
frm.Attributes.Add("runat", "server");
frm.Controls.Add(ControlToPrint);
pg.DesignerInitialize();
pg.RenderControl(htmlWrite);
string strHTML = stringWrite.ToString();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Write(strHTML);
HttpContext.Current.Response.Write("<script>window.print();</script>");
HttpContext.Current.Response.End();
protected void btnPrint_Click(object sender, EventArgs e)
{
Session["ctrl"] = QuotePanel;
QuotePanel.Visible = true;
Control ctrl = (Control)Session["ctrl"];
PrintWebControl(ctrl);
}
答案 0 :(得分:0)
从我可以制作的代码中,您试图使用回发来打印页面,然后运行javascript以使客户端执行打印。
如果您修改打印按钮以不进行回发(删除&#34; runat = server&#34;并将类型更改为简单的HTML按钮)并设置onclick事件以执行窗口,这将简单得多。打印()。这不仅可以简化代码,还可以使代码更好,因为它不需要往服务器往返打印页面。