ASP.NET網頁列印(只列印相關內容/自寫功能)

來源:互聯網
上載者:User

昨晚朋友要求在前段時間完成的新聞的網站上加上一個功能,就是在每篇新聞瀏覽的頁面, 加一個列印銨鈕。讓使用者一點列印,能把整篇文章列印。一開始建議朋友,叫使用者使用IE瀏覽器的列印功能,但是朋友說,那個列印功能是把頁面的不相關的內容也列印了,使用者只想列印整篇文章即可。

既然要改,照做就是了。沒有這方面經驗,在網上找到很多相關的ASP.NET列印例子,要麼太過複雜,要麼效果不太理想。最後還是結合這諸多的例子,改寫一個合適的功能。

下面是改寫的地方,首先在文章瀏覽的.aspx頁面,添加一個Div,並加上runat="server" ,讓其包含整篇文章,如:

複製代碼 代碼如下:<div id="PrintContent" runat="server">
ASP.NET網頁列印測試<br />
內容內容內容內容內容內容內容內容內容內容內容內容內容<br />
內容內容內容內容內容內容內容內容內容內容內容內容內容<br />
內容內容內容內容內容內容內容內容內容內容內容內容內容<br />
內容內容內容內容內容內容內容內容內容內容內容內容內容<br />
內容內容內容內容內容內容內容內容內容內容內容內容內容<br />
內容內容內容內容內容內容內容內容內容內容內容內容內容<br />
內容內容內容內容內容內容內容<br />
</div>

然後,添加一個列印銨鈕複製代碼 代碼如下:<asp:Button ID="btnPrint" runat="server" Text="列印" OnClientClick="return PrintArticle();" />

看到否,上面的列印銨鈕需要執行一段Javascript代碼,也是重點部分。Insus.NET寫在下面,這段Javascript放置在.aspx頁最未端部分,也就是讓網頁最後執行。 複製代碼 代碼如下: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網頁列印測試</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;
}

最後來一個動畫示範

列印輸出結果

還可以,但有一點不理想,就是頁頭頁尾有一行資訊,即是Highlight的部分,能否取消它,答案是肯定的,參考下面設定方法設定。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.