在ASP.NET 2.0中列印(列印控制項)

來源:互聯網
上載者:User

 

如何在ASP.NET 2.0中列印

 在這篇文章中,我們將探討如何在ASP.NET 2.0控制項列印。 我們將列印在一個快顯視窗控制,內部使用window.print()方法。 以前的列印中我們用過水晶報表的,和JS的,如果是大資料的,那麼多數人都會選擇水晶報表的,不過很麻煩,前幾天我用過JS的,不過有缺點,把我頁面上的內容都列印了,包括按鈕今天我給大家介紹 這個控制項(也可以說是一個類)是指定頁面地區列印的,希望能給大家帶來協助 步驟1: 建立一個PrintHelper類。 這個類包含一個名為PrintWebControl一個方法,它可以列印任何想控制一個GridView,DataGrid中,面板,文字框等類可以調用window.print(),類比列印按鈕。

註:我沒有寫過這個類和我也不知道原作者。 我會很樂意加入一個參考,以防有人知道 

using System;<br />using System.Data;<br />using System.Configuration;<br />using System.Web;<br />using System.Web.Security;<br />using System.Web.UI;<br />using System.Web.UI.WebControls;<br />using System.Web.UI.WebControls.WebParts;<br />using System.Web.UI.HtmlControls;<br />using System.IO;<br />using System.Text;<br />using System.Web.SessionState; </p><p>namespace PrintPage<br />{<br /> public class PrintHelper<br /> {<br /> public PrintHelper()<br /> { } </p><p> public static void PrintWebControl(Control control)<br /> {<br /> PrintWebControl(control, string.Empty);<br /> } </p><p> public static void PrintWebControl(Control control, string Script)<br /> {<br /> StringWriter stringWrite = new StringWriter();<br /> HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWrite);<br /> if (control is WebControl)<br /> {<br /> Unit w = new Unit(100, UnitType.Percentage);<br /> ((WebControl)control).Width = w;<br /> }<br /> Page pg = new Page();<br /> pg.EnableEventValidation = false;<br /> if (Script != string.Empty)<br /> {<br /> pg.ClientScript.RegisterStartupScript(pg.GetType(), "PrintJavaScipt", Script);<br /> } </p><p> HtmlForm frm = new HtmlForm();<br /> pg.Controls.Add(frm);<br /> frm.Attributes.Add("runat", "server");<br /> frm.Controls.Add(control);<br /> pg.RenderControl(htmlWriter);<br /> string strHTML = stringWrite.ToString();<br /> HttpContext.Current.Response.Clear();<br /> HttpContext.Current.Response.Write(strHTML);<br /> HttpContext.Current.Response.Write("");<br /> HttpContext.Current.Response.End();<br /> }<br /> }<br />}  

 

步驟2: 建立兩個頁面,Default.aspx和Print.aspx。
Default.aspx頁面將包含要列印的控制。 Print.aspx將作為一個彈出網頁調用列印功能。

 第三步: 在你的Default.aspx,拖放幾個控制項,把你想要列印的內容和控制項都放到一個容器中(panel)。
這樣,我們就可以對這個容器列印了

第四步: 添加列印按鈕Default.aspx頁面代碼,鍵入以下內容:

protected void btnPrint_Click(object sender, EventArgs e)<br /> {<br /> Session["control"] = Panel1;<br /> ClientScript.RegisterStartupScript(this.GetType(), "onclick", "window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1');");<br /> }  

 

第五步: 在Print.aspx.cs Page_Load事件中,添加以下代碼:

<br /> protected void Page_Load(object sender, EventArgs e)<br /> {<br /> Control control = (Control)Session["control"];<br /> PrintHelper.PrintWebControl(control);<br /> }<br />  

 

那麼就是這樣。 我希望這篇文章是有用的,我感謝你觀看它。

 

 

代碼下載:http://www.51ascx.com/183.html

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.