Mehr von Jürgen Gutsch

Mehr von Jürgen Gutsch

Empfehlungen von Jürgen Gutsch

Blog-Empfehlungen von Jürgen Gutsch

Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Jürgen Gutsch

ASP.NET und mehr...

News

JavaScript Aufruf nach einem ASP.NET Ajax PostBack

Wenn man nach einem asynchronen PostBack - mit einem ASP.NET AJAX UpdatePanel (1) - ein JavaScript ausführen möchte, muss man darauf achten, dass es Innerhalb des UpdatePanels ausgegeben wird.

Was sich hierbei logisch und selbstverständlich anhört, wird nicht immer auf Anhieb berücksichtigt. Vor allem wenn man - wie empfohlen - den ScriptManager (2) zu Hilfe nimmt und sich das UpdatePanel innerhalb eines Controlls befindet. In meinem Fall hatte ich ein Controll dessen Childs in ein UpdatePanel gerendert wurden.

Ich wunderte mich dass folgender Code keinerlei Auswirkungen hatte und das JavaScript niemals ausgegeben wurde:

string script = "window.open(\"../../Download.aspx?filename=" + filename + "\");";
ScriptManager.RegisterStartupScript(this, this.GetType(), "download", script, true);

Dieser Code funktioniert nur, wenn er vor einem PostBack ausgeführt wird.

Erst als ich erkannte, dass sich das aktuelle Controll (this) ja außerhalb des UpdatePanels befindet, war alles klar...

string script = "window.open(\"../../Download.aspx?filename=" + filename + "\");";
ScriptManager.RegisterStartupScript(this.GridView1, this.GridView1.GetType(),
        "download", script, true);

Ich habe das Script lediglich für ein Control registriert, das sich innerhalb des UpdatePanels befindet und siehe da... es funktioniert.

Vielleicht hätte ich um Zeit zu sparen, auch einfach nur die Dokumentation lesen sollen:
RegisterStartupScript Method (3)


(1) http://asp.net/AJAX/Documentation/Live/mref/T_System_Web_UI_UpdatePanel.aspx
(2) http://asp.net/AJAX/Documentation/Live/mref/T_System_Web_UI_ScriptManager.aspx
(3) http://asp.net/AJAX/Documentation/Live/mref/M_System_Web_UI_ScriptManager_RegisterStartupScript_5_d03cd23f.aspx

Posted: Mittwoch, 19. September 2007 09:25 von Jürgen Gutsch

Kommentare

Anonyme Kommentare sind nicht zugelassen