Скрыть заголовок и нижний колонтитул при печати веб-элемента управления с использованием ASP.NET
-
05-07-2019 - |
Вопрос
Как я могу скрыть заголовок, такой как 'Страница 1 из 1' и нижний колонтитул (url) при печати веб-элемента управления в ASP.NET?
В настоящее время я делаю это, открывая новую страницу, нажимая на нее кнопку «Печать» и
protected void Page_Load(object sender, EventArgs e)
{
if( null != Session["Control"] )
{
Control ctrl = ( Control )Session["Control"];
PrintManager.PrintWebControl( ctrl );
Session["Control"] = null;
}
}
Это напечатает верхний и нижний колонтитулы. Как этого избежать?
Решение
Этот параметр настраивается пользователем в его браузере. Их нельзя отключить из кода. Лучше всего включить инструкции о том, как настроить / отключить настройки.
Смотрите пример здесь: http://www.xheo.com/products/sps/default. ASPX? печать = верно
Другие советы
Вы должны использовать стили CSS и указать, что они применяются к типу печатного носителя. Смотрите эту статью для помощи; http://www.cantoni.org/articles/printstyle
В основном создайте отдельную таблицу стилей только для стилей печати. Если вы хотите что-то скрыть на странице, используйте {display: none}
в качестве одного из атрибутов стиля этих элементов. Затем свяжите свою таблицу стилей в элементе HEAD; Р>
<link href="print.css" media="print" type="text/css" rel="stylesheet" />
Для этого мы используем класс печати наподобие
public static void PrintWebControl(Control ctrl)
{
PrintWebControl(ctrl, string.Empty);
}
public static void PrintWebControl(Control ctrl, string Script)
{
StringWriter stringWrite = new StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
if (ctrl is WebControl)
{
Unit w = new Unit(100, UnitType.Percentage); ((WebControl)ctrl).Width = w;
}
Page pg = new Page();
pg.EnableEventValidation = false;
if (Script != string.Empty)
{
pg.ClientScript.RegisterStartupScript(pg.GetType(), "PrintJavaScript", Script);
}
HtmlForm frm = new HtmlForm();
pg.Controls.Add(frm);
// done changes on below 1 line for unassigned header URL //
frm.ResolveUrl("");
frm.Attributes.Add("runat", "server");
frm.Controls.Add(ctrl);
pg.DesignerInitialize();
pg.RenderControl(htmlWrite);
string strHTML = stringWrite.ToString();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Write(strHTML);
HttpContext.Current.Response.Write("<script>window.print();</script>");
HttpContext.Current.Response.End();
}
здесь просто измените строку в свойстве формы и установите
frm.ResolveUrl("");
поэтому URl не отображается, когда страница печатается ... я успешно ее использую.
Если вы используете Firefox, и у вас есть возможность установить этот клиент надстройку .
В противном случае, если вы используете Internet Explorer: Google для " MeadCo ScriptX "
(опция FF бесплатна, опция IE бесплатна только для основных функций)