2017-01-18 6 views
0

Ich verwende einen UpdatePanel mit einem Gridview darin. Ein Timer überprüft einige Dinge in der Gridview. Im Gridview erzeugen ich eine Spalte für die Anzeige einen Upload:Fehler in UpdatePanel: Ausdruck kann nicht ausgewertet werden, da der Code optimiert ist oder ein nativer Rahmen über dem Aufrufstapel liegt

<asp:TemplateField HeaderText="Zeichnung" ItemStyle-HorizontalAlign="Center"> 

-Code hinter:

ImageButton ibtn = new ImageButton(); 
ibtn.CommandArgument = Upload; 
ibtn.Click += btn_clicked; 
ibtn.ImageUrl = "~/images/download.png"; 
ibtn.ToolTip = "Zeichnung öffnen"; 
gvr.Cells[20].Controls.Add(ibtn); 

Durch Klicken auf die Taste, um den Download zu starten:

Response.ClearHeaders(); 
Response.ContentType = "application/pdf"; 
Response.Clear(); 
Response.AppendHeader("Content-Disposition", "attachment;Filename=" + Upload); 
Response.TransmitFile(Page.MapPath("App_data/OPL/Upload/" + Upload)); 
Response.End(); 

Alle gearbeitete Gut, bis ich die Gridview in das UpdatePanel gelegt habe. Nun wirft sie den Fehler:

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack

Ich versuchte, die Response.End() mit HttpContext.Current.ApplicationInstance.CompleteRequest(); aber nichts geändert zu ersetzen.

Wie hier geschrieben (question) ist es ein Problem des Postbacks. Die Lösung scheint zu sein

protected void Page_Load(object sender, EventArgs e) { 
ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); 
scriptManager.RegisterPostBackControl(this.btnExcelExport); 
//Further code goes here.... 
} 

Aber ich kann diesen Code nicht hinzufügen, weil die Schaltfläche generiert und nicht in der Gridview angegeben ist. Ich habe versucht, scriptManager.RegisterPostBackControl(this.btn_Upload); hinzuzufügen, aber er findet den Knopf nicht.

Wie kann ich das lösen? Danke

Antwort

1

Eine mögliche Lösung ist, die Gridview (als Ganzes) als Postback-Steuerelement zu registrieren. ScriptManager.RegisterPostBackControl(this.gvr);

+0

Funktioniert, danke! –

Verwandte Themen