0

在 ASP.NET 中打印 webcontol 时,如何隐藏“第 1 页,共 1 页”和页脚 (url) 之类的页眉?

我目前通过在打印按钮上打开一个新页面单击并在其中进行操作

protected void Page_Load(object sender, EventArgs e)
{
    if( null != Session["Control"] )
    {
        Control ctrl = ( Control )Session["Control"];
        PrintManager.PrintWebControl( ctrl );
        Session["Control"] = null;
    }
}

这将打印页眉和页脚。如何避免?

4

4 回答 4

1

该设置由用户在其浏览器中配置。他们无法从代码中禁用它。最好的办法是包含有关如何配置/禁用设置的说明。

在此处查看示例: http ://www.xheo.com/products/sps/default.aspx?print=true

于 2009-06-17T08:14:53.227 回答
1

您应该使用 CSS 样式并指定它们适用于打印的媒体类型。请参阅本文寻求帮助;http://www.cantoni.org/articles/printstyle

基本上只为打印样式创建一个单独的样式表。如果您想在页面上隐藏某些内容,请使用{ display:none }该元素的样式属性之一。然后在 HEAD 元素中链接您的样式表;

<link href="print.css" media="print" type="text/css" rel="stylesheet" />
于 2009-06-17T13:11:21.803 回答
0

如果您使用的是 Firefox,并且您可以让客户端安装此插件

否则,如果您使用 Internet Explorer:谷歌搜索“ MeadCo ScriptX

(FF 选项是免费的,IE 选项是免费的,仅用于基本功能)

于 2009-12-01T20:07:31.743 回答
0

为此,我们正在使用类似的打印类

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 不可见..我成功使用它。

于 2011-07-30T12:46:19.000 回答