سؤال

وكيف يمكنني إخفاء الرأس مثل 'الصفحة 1 من 1' وتذييل (رابط) عند طباعة webcontol في 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;
    }
}

وهذا سوف طباعة رأس وتذييل الصفحة. كيفية تجنب ذلك؟

هل كانت مفيدة؟

المحلول

ويتم تكوين هذا الإعداد من قبل المستخدم في المتصفح. هم توجد وسيلة لتعطيله من التعليمات البرمجية. أفضل رهان هو You'r تتضمن تعليمات حول كيفية تكوين / تعطيل الإعدادات.

وانظر على سبيل المثال هنا: http://www.xheo.com/products/sps/default. ASPX؟ الطباعة = صحيح

نصائح أخرى

ويجب عليك استخدام أنماط CSS وتحديد انطباقها على نوع وسائط الطباعة. انظر هذه المقالة للمساعدة؛ http://www.cantoni.org/articles/printstyle

وأساسا خلق أنماط منفصلة عن أنماط الطباعة فقط. إذا كنت ترغب في إخفاء شيء على { display:none } استخدام صفحة واحدة من تلك الصفات عناصر النمط. ثم ربط الأنماط الخاصة بك في العنصر الرأس.

<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 غير مرئية عند الصفحة هو استخدام print..i ذلك بنجاح.

إذا كنت تستخدم فايرفوكس، ويمكن أن يكون العميل تثبيت هذا إضافة على .

وإلا، إذا كنت تستخدم Internet Explorer: جوجل ل "<م> MeadCo ScriptX "

و(الخيار FF مجاني، IE الخيار الحر للحصول على الوظائف الأساسية فقط)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top