jQuery $(document).ready & asp.net AJAX update panel

Συχνά στις asp.net σελίδες έχουμε update panel αλλά και javascript κώδικα που τρέχει όταν "φορτώνει" η σελίδα.
Το πρόβλημα είναι πως καθώς με το update panel έχουμε partial updates δεν τρέχει ο jQuery κώδικας που συνήθως περιέχεται στο $(document).ready.
Για να αντιμετωπίσουμε το πρόβλημα, τρέχουμε τον jQuery κώδικα στο client event που συμβαίνει όταν το update panel φορτώνει.
Πρώτα πρέπει να κάνουμε bind μια javascript μέθοδο που να τρέχει όταν κάνει refresh το update panel, και γίνεται με τον παρακάτω κώδικα:

    <script type="text/javascript">
        Sys.Application.add_init(application_init);
 
        function application_init() {
 
 
            var prm = Sys.WebForms.PageRequestManager.getInstance();
 
            prm.add_pageLoaded(prm_pageLoaded);
 
        }
    </script>
Σαν δεύτερο βήμα υλοποιούμε την μέθοδο prm_pageLoaded() που έχει γίνει registered για το load event του update panel

        function prm_pageLoaded() {
 
            // o javascript κώδικας που τρέχει με κάθε refresh 
            // του update panel
 
        }
To update panel έχει και άλλα events που τρέχουν στον client. Την επόμενη φορά...

Comments

No responses to “jQuery $(document).ready & asp.net AJAX update panel”

Post a Comment