我需要创建一个按钮,用于生成可打印的发票。这将重新格式化网页以专门用于打印购买票据信息。
我只允许使用一个网页,不知何故,页面上的其他内容必须消失,以便只显示可打印的发票。我怎样才能做到这一点?
我被告知“诀窍是使用Response类,它由Page类提供(更确切地说,它由名为System.Web的父类提供)。 您在屏幕上显示的内容由System.Web对象管理,并使用Response方法将您想要的任何内容放在那里。 “
答案 0 :(得分:2)
无需弄乱Response
对象。
诀窍是使用CSS media types - 特别是print CSS file。
向页面添加打印CSS文件:
<LINK REL="stylesheet" TYPE="text/css" MEDIA="print" HREF="foo.css" />
在此文件中,您将需要隐藏的所有内容的display
属性设置为none
,然后您可以调整需要显示的CSS以优化打印。
当用户使用普通浏览器打印功能进行打印时,将使用此功能来渲染打印。
答案 1 :(得分:1)
'技巧'的含义是你可以发送你想要的任何回复。例如,如果要发送pdf,可以更改响应以发送pdf的字节流,更改标题,客户端将提供pdf文件。
那说问题很模糊,并且有很多可能的答案。 “只允许使用一个网页” - 这是否意味着您只能拥有一个网址或一个aspx文件?因为您可以非常轻松地将Server.Transfer转移到第二页,这将使您看起来仍然在同一页面上。
是否还必须是包含此发票的网页?或者您可以使用工具(例如SQL Reporting Services)生成它并将其作为pdf提供吗?
如果您遇到单个网页,最简单的方法就是拥有两个面板。其中一个包含'发票',另一个包含页面通常包含的内容。如果用户想要发票,请隐藏其他面板并显示发票。发票本身可以/应该是自定义控件(ascx),因此您可以随时插入它并仍然保持关注点。