ASP.NET網(wǎng)頁打印(只打印相關(guān)內(nèi)容/自寫功能)
昨晚朋友要求在前段時間完成的新聞的網(wǎng)站上加上一個功能,就是在每篇新聞瀏覽的頁面, 加一個打印銨鈕。讓用戶一點打印,能把整篇文章打印。一開始建議朋友,叫用戶使用IE瀏覽器的打印功能,但是朋友說,那個打印功能是把頁面的不相關(guān)的內(nèi)容也打印了,用戶只想打印整篇文章即可。
既然要改,照做就是了。沒有這方面經(jīng)驗,在網(wǎng)上找到很多相關(guān)的ASP.NET打印例子,要么太過復(fù)雜,要么效果不太理想。最后還是結(jié)合這諸多的例子,改寫一個合適的功能。
下面是改寫的地方,首先在文章瀏覽的.aspx頁面,添加一個Div,并加上runat="server" ,讓其包含整篇文章,如:
<div id="PrintContent" runat="server">
ASP.NET網(wǎng)頁打印測試<br />
內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容<br />
內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容<br />
內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容<br />
內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容<br />
內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容<br />
內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容<br />
內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容內(nèi)容<br />
</div>
然后,添加一個打印銨鈕:
<asp:Button ID="btnPrint" runat="server" Text="打印" OnClientClick="return PrintArticle();" />
看到否,上面的打印銨鈕需要執(zhí)行一段Javascript代碼,也是重點部分。Insus.NET寫在下面,這段Javascript放置在.aspx頁最未端部分,也就是讓網(wǎng)頁最后執(zhí)行。
function PrintArticle() {
var pc = document.getElementById("<%=PrintContent.ClientID%>");
var pw = window.open('', '', 'width=500,height=400');
pw.document.write('<html>');
pw.document.write('<head>');
pw.document.write('<title>ASP.NET網(wǎng)頁打印測試</title>');
pw.document.write('</head>');
pw.document.write('<body>');
pw.document.write(pc.innerHTML);
pw.document.write('</body>');
pw.document.write('</html>');
pw.document.close();
setTimeout(function () {
pw.print();
}, 500);
return false;
}
最后來一個動畫演示:

打印輸出結(jié)果:
還可以,但有一點不理想,就是頁頭頁尾有一行信息,即是Highlight的部分,能否取消它,答案是肯定的,參考下面設(shè)置方法設(shè)置。
相關(guān)文章
從請求管道深入剖析HttpModule的實現(xiàn)機(jī)制圖文介紹
想要了解底層的原理必須對請求處理過程和頁面的生命周期有點了解才方便您入門學(xué)習(xí)一下內(nèi)容,本文將詳細(xì)介紹2012-11-11ASP.NET?Core?WebApi返回結(jié)果統(tǒng)一包裝實踐記錄
本文主要是展示了針對ASP.NET Core WeApi結(jié)果統(tǒng)一返回格式的相關(guān)操作,通過示例我們一步一步的展示了完成這一目標(biāo)的不斷升級的實現(xiàn),雖然整體看起來比較簡單,但是卻承載著筆者一次又一次的思考升級2022-04-04數(shù)據(jù)庫SqlParameter 的插入操作,防止sql注入的實現(xiàn)代碼
今天學(xué)習(xí)了一下SqlParameter的用法,原來這么寫是為了防止sql注入,破壞數(shù)據(jù)庫的。并自己動手連接了數(shù)據(jù)庫。2013-04-04ASP.NET MVC解決上傳圖片臟數(shù)據(jù)的方法
這篇文章介紹了ASP.NET MVC解決上傳圖片臟數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09Asp.net利用JQuery彈出層加載數(shù)據(jù)代碼
最近看QQ空間里面的投票功能很使用。點擊一個鏈接就彈出一個層,然后再加載一些投票信息,旁邊的區(qū)域變成灰色不可用狀態(tài)。其實這不算什么高深的技術(shù),只要在ASP.NET中利用JQuery結(jié)合一般處理程序ASHX即可搞定了。2009-11-11