JavaScript ausführen wenn sich UpdatePanel aktualisieren

Hallo zusammen,

Möchte man auf Seiten mit mehreren UpdatePanels gezielt Javascript ausführen, wenn sich ein bestimmtes Panel aktualisiert, kann man das über den Javascript-PageLoaded Event der Hauptseite realisieren. Dieser Event liefert Informationen über die aktualisierten Panels mit. Im folgenden Beispielcode gehen wir nur von einem Panel aus, das Array aus get_panelsUpdated kann aber auch komplett ausgewertet werden.

<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);

                function pageLoaded(sender, args) {

                    var panels = args.get_panelsUpdated();
                    var panelID;

                    if (panels.length > 0) {
                        for (i = 0; i < panels.length; i++) {
                            panelID = panels[i];
                        }
                    }

                    var panel = panelID.id;
        
                    if (panel.indexOf("MyPanelId") > -1) {
                           // Do something
                    }
              }
</script>

Noch ein Tip: Verschiedene Zustände eines UpdatePanels (Zum Beispiel bei MultiViews) kann man auch einfach über die Prüfung von Layoutelementen erreichen. Für die ReadOnly Ansicht kann man zum beispiel ein HTML-Element mit der ID ReadOnlyView in die entsprechende View packen. Ist es vorhanden, ist das Panel in der ReadOnly Ansicht und man kann entsprechend JavaScript ausführen.

Viel Spaß beim ausprobieren
Sascha