2

I need to create a button that will be offered to generate a printable invoice. This will reformat the webpage specifically for printing the buying tickets information.

I am only allowed to use one webpage, and somehow everything else on the page must disappear so that only the Printable Invoice shows. How can I do this?

I was told that "The trick is to use the Response method, which is provided by the Page class (more precisely, it is provided by a parent class named System.Web). What you show on the screen is managed by the System.Web object and using the Response method you can put anything you want in there. "

4

2 回答 2

2

无需弄乱Response对象。

诀窍是使用CSS 媒体类型- 特别是打印 CSS 文件

将打印 CSS 文件添加到页面:

 <LINK REL="stylesheet" TYPE="text/css" MEDIA="print" HREF="foo.css" />

在此文件中,您可以设置display需要隐藏的所有内容的属性,none并且可以调整需要显示的 CSS 以优化打印效果。

当用户使用普通浏览器打印功能进行打印时,这将用于渲染打印。

于 2013-04-07T08:48:42.887 回答
1

“技巧”的意思是您可以发送任何您想要的响应。例如,如果您想发送 pdf,您可以更改响应以发送 pdf 的字节流,更改标头,客户端将收到一个 pdf 文件。

也就是说,这个问题非常模糊,并且有很多可能的答案。“只允许使用一个网页” - 这是否意味着您只能拥有一个 url 或一个 aspx 文件?因为您可以非常轻松地将 Server.Transfer 转移到第二页,这将使您看起来仍然在同一页上。

它还必须是包含此发票的网页吗?或者您可以使用工具(例如 SQL Reporting Services)生成它并将其作为 pdf 格式提供吗?

如果您被单个网页卡住,最简单的方法是拥有两个面板。其中一个包含“发票”,另一个包含页面通常包含的内容。如果用户想要发票,隐藏另一个面板并显示发票。发票本身可以/应该是自定义控件 (ascx),因此您可以随时将其插入,并且仍然保持关注点分离。

于 2013-04-07T08:48:24.550 回答