Thomas Bandt

Über mich | Kontakt | Archiv

ASP.NET Ajax UpdatePanel und $(document).ready();

Seitdem jQuery den Weg in meinen Alltag geschafft hat, führe ich JavaScript-Funktionen, die beim Start/Laden einer Seite ausgeführt werden solllen, in dieser Weise aus:

   1:  $(document).ready(function()
   2:  {
   3:      calculateAdSize();
   4:      setUploadType();
   5:  });

 Aber was tun, wenn der Spaß in einem ASP.NET Ajax UpdatePanel laufen soll? (Die Gründe hierfür lassen wir mal außen vor ... ;-)). Dann nämlich wird die Seite für den Browser nicht neu geladen, sondern per Ajax immer nur ein Teil der Seite ohne Reaload ausgetauscht. Folglich greift das Event oben nicht mehr.

Microsoft bietet hier eine eigene Lösung für eine "clientseitige PageLoad-Methode":

   1:  Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded)
   2:   
   3:  function pageLoaded(sender, args) {
   4:      calculateAdSize();
   5:      setUploadType();
   6:  }

 

Kommentare

  1. Rene schrieb am Mittwoch, 27. Mai 2009 21:43:00 Uhr:

    Hallo Thomas,

    du kannst auch PageRequestManager.add_endRequest nutzen. Daneben gibt es noch PageRequestManager.add_initializeRequest. InitRequest-Eventhandler, der gefeuert wird, wenn der Request startet, OnLoad-Eventhandler, der gefeuert wird, wenn die partielle Aktualisierung der Seite abgeschlossen ist.Der Event wird vor EndRequest aufgerufen. EndRequest-Eventhandler, der gefeuert wird, wenn die partielle Aktualisierung der Seite abgeschlossen ist. Der Event wird nach OnPageLoad aufgerufen. Wenn der PageRequestManger einen Serverfehler empfängt, wird das Error-Handling des
    Scriptmanagers ausgelöst. Für die Arbeit mit jQuery haben wir die besten Erfahrungen gemacht, uns auf den EndRequest-Handler zu verlassen. Der PageLoadHandler ist immer dann hilfreich, wenn man zB. mehrere Updatepanels auf der Seite hat und wissen muss, welcher denn nun aktualisiert wurde. Diese Information sollte man dann zwischenspeichern, da sie im EndRequestHandler nicht zur Verfügung steht.




« Zurück  |  Weiter »