2013-04-07 2 views
2

Мне нужно создать кнопку, которая будет предложена для создания распечатки счета. Это позволит переформатировать веб-страницу специально для печати информации о покупке билетов.Метод ответа, предоставляемый классом страницы?

Мне разрешено использовать только одну веб-страницу, и как-то все остальное на странице должно исчезнуть, так что отобразится только распечатка счета-фактуры. Как я могу это сделать?

Мне сказали, что «Хитрость заключается в использовании метода Response, который предоставляется классом« Страница »(точнее, он предоставляется родительским классом с именем System.Web). Что вы показываете на экране? управляемый объектом System.Web и используя метод Response, вы можете поместить туда что угодно. »

ответ

1

Что означает« трюк », так это то, что вы можете отправить любой ответ, который вы хотите. Если, например, вы хотите отправить PDF-файл, вы можете изменить ответ для отправки байтового потока в формате pdf, изменить заголовок, а клиенту будет предоставлен файл pdf.

Это говорит о том, что вопрос очень расплывчатый и имеет множество возможных ответов. «Разрешено использовать только одну веб-страницу» - означает ли это, что у вас может быть только один URL-адрес или один файл aspx? Потому что вы можете очень легко Server.Transfer на вторую страницу, и это даст внешний вид вы все еще на одной странице.

Это также должна быть веб-страница, содержащая этот счет-фактура? Или вы можете сгенерировать его с помощью инструмента (например, SQL Reporting Services) и подавать его в виде pdf?

Самый простой способ, если вы застряли на одной веб-странице, будет иметь две панели. Один из них содержит «счет-фактуру», другой содержит то, что обычно содержит страница. Если пользователю нужен счет-фактура, скрыть другую панель и показать счет-фактуру. Сам счет-фактура может/должен быть пользовательским элементом управления (ascx), чтобы вы могли подключать его, когда захотите, и все еще сохраняете разделение проблем.

+0

Похоже, мы писали наши ответы одновременно. Мой пример демонстрирует метод, описанный в последнем абзаце Хедриана. –

2

Не нужно возиться с объектом Response.

Хитрость заключается в использовании CSS media types - в частности print CSS file.

Добавить файл печати CSS на странице:

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

В этом файле вы установите display свойство все, что вам нужно, чтобы скрыть none и вы можете настроить CSS, что вам нужно, чтобы отобразить на оптимизируйте его для печати.

Когда пользователи печатают, используя обычные возможности печати браузера, это то, что будет использоваться для рендеринга печати.