ASP.NET網(wǎng)頁(yè)打印(只打印相關(guān)內(nèi)容/自寫功能)
昨晚朋友要求在前段時(shí)間完成的新聞的網(wǎng)站上加上一個(gè)功能,就是在每篇新聞瀏覽的頁(yè)面, 加一個(gè)打印銨鈕。讓用戶一點(diǎn)打印,能把整篇文章打印。一開(kāi)始建議朋友,叫用戶使用IE瀏覽器的打印功能,但是朋友說(shuō),那個(gè)打印功能是把頁(yè)面的不相關(guān)的內(nèi)容也打印了,用戶只想打印整篇文章即可。
既然要改,照做就是了。沒(méi)有這方面經(jīng)驗(yàn),在網(wǎng)上找到很多相關(guān)的ASP.NET打印例子,要么太過(guò)復(fù)雜,要么效果不太理想。最后還是結(jié)合這諸多的例子,改寫一個(gè)合適的功能。
下面是改寫的地方,首先在文章瀏覽的.aspx頁(yè)面,添加一個(gè)Div,并加上runat="server" ,讓其包含整篇文章,如:
<div id="PrintContent" runat="server">
ASP.NET網(wǎng)頁(yè)打印測(cè)試<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>
然后,添加一個(gè)打印銨鈕:
<asp:Button ID="btnPrint" runat="server" Text="打印" OnClientClick="return PrintArticle();" />
看到否,上面的打印銨鈕需要執(zhí)行一段Javascript代碼,也是重點(diǎn)部分。Insus.NET寫在下面,這段Javascript放置在.aspx頁(yè)最未端部分,也就是讓網(wǎng)頁(yè)最后執(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)頁(yè)打印測(cè)試</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;
}
最后來(lái)一個(gè)動(dòng)畫(huà)演示:
打印輸出結(jié)果:

還可以,但有一點(diǎn)不理想,就是頁(yè)頭頁(yè)尾有一行信息,即是Highlight的部分,能否取消它,答案是肯定的,參考下面設(shè)置方法設(shè)置。

相關(guān)文章
asp.net core集成CKEditor實(shí)現(xiàn)圖片上傳功能的示例代碼
這篇文章主要介紹了asp.net core集成CKEditor實(shí)現(xiàn)圖片上傳功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
在ASP.Net?Core應(yīng)用程序中使用Bootstrap4
這篇文章介紹了在ASP.Net?Core應(yīng)用程序中使用Bootstrap4的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
Discuz!NT數(shù)據(jù)庫(kù)讀寫分離方案詳解
Discuz!NT這個(gè)產(chǎn)品在其企業(yè)版中提供了對(duì)‘讀寫分離’機(jī)制的支持,使對(duì)CPU及內(nèi)存消耗嚴(yán)重的操作(CUD)被 分離到一臺(tái)或幾臺(tái)性能很高的機(jī)器上,而將頻繁讀取的操作(select)放到幾臺(tái)配置較低的機(jī)器上,然后通過(guò)‘事務(wù) 發(fā)布訂閱機(jī)制’,實(shí)現(xiàn)了在多個(gè)sqlserver數(shù)據(jù)庫(kù)之間快速高效同步數(shù)據(jù),從而達(dá)到了將‘讀寫請(qǐng)求’按實(shí)際負(fù)載 情況進(jìn)行均衡分布的效果。2010-06-06
.NET 9 中 LINQ 新增功能實(shí)現(xiàn)過(guò)程
文章介紹了.NET 9中LINQ新增功能,包括CountBy、AggregateBy和Index方法,并提供了相關(guān)代碼示例和輸出結(jié)果,感興趣的朋友跟隨小編一起看看吧2024-11-11
JQuery運(yùn)用ajax注冊(cè)用戶實(shí)例(后臺(tái)asp.net)
JQuery運(yùn)用ajax注冊(cè)用戶實(shí)例,其實(shí)那中后臺(tái)語(yǔ)言都是差不多的形式。2009-12-12
C#實(shí)現(xiàn)pdf導(dǎo)出 .Net導(dǎo)出pdf文件
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)pdf導(dǎo)出 .Net導(dǎo)出pdf文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09

