2010-12-08 5 views
0

ich diesen Fehler bekam, während ich Daten zu drucken verwenden, um von RepeaterWährend Druckdaten von Repeater-Steuerelement in asp.net mit C#

„RegisterForEventValidation kann nur während des Render() aufgerufen werden;“

Ich habe bereits EnableEventValidation = "false" in Seitendirektive und auch in web.config meine Anwendung Innenseite Tag

Hier ist der Code, den ich für die

public static void PrintWebControl(Control ctrl, string Script) 
{ 

    StringWriter stringWrite = new StringWriter(); 

    HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 

    if (ctrl is WebControl) 
    { 

     Unit w = new Unit(50, UnitType.Pixel); 

     ((WebControl)ctrl).Width = w; 

    } 

    Page pg = new Page();  


    if (Script != string.Empty) 
    { 

     pg.RegisterStartupScript("PrintJavaScript", Script); 

    } 

    HtmlForm frm = new HtmlForm(); 

    pg.Controls.Add(frm); 

    frm.Attributes.Add("runat", "server"); 

    frm.Controls.Add(ctrl); 

    string scr = "<script>function window.onafterprint(){history.back(1);}</script>"; 

    htmlWrite.Write(scr); 



    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(); 

} 
+0

posten Bitte Code. – Lazarus

Antwort

1

Ersetzen Sie die Zeile

Page pg = new Page();  

mit

Page pg = new Page();    
pg.EnableEventValidation = false;