ASP.NET AJAX 4.0 - Παράδειγμα χρήσης Template
Πριν λίγο καιρό ανακοινώθηκε το 1ο Preview της 4ης έκδοσης του Microsoft AJAX Client-side Framework. Με αρκετά καινούργια χαρακτηριστικά αυτό το οποίο ξεχώρισα είναι η χρήση των templates. Ας δούμε όμως ένα παράδειγμα χρήσης των templates.
Αρχικά κατεβάζουμε το MicrosoftAjaxTemplates.js το οποίο είναι διαθέσιμο στο CodePlex και το προσθέτουμε στο project μας. Στη συνέχεια θα πρέπει να το αναφέρουμε στην σελίδα μας. Αυτό μπορεί να γίνει είτε μέσα απο τον ScriptManager είτε προσθέτοντας ένα script tag στο head της σελίδας μας. Εδώ θα επιλέξουμε να το προσθέσουμε μέσα από τον ScriptManager.
Επίσης ενεργοποιούμε τα PageMethods. Στη συνέχεια προσθέτουμε ένα button το οποίο θα φέρει τα δεδομένα απο τον server, το template που θέλουμε να χρησιμοποιήσουμε και ενα div στο οποίο θα εμφανίσουμε να δεδομένα.
Στη συνέχεια προσθέτουμε μια WebMethod στο code-behind αρχείο μας και μια custom κλάση με 4 properties τα οποία θα εξομοιώσουν τα δεδομένα μας, τα οποία μπορεί να προέρχονται από μια βάση, από ενα xml κλπ. Αυτή η WebMethod που προσθέσαμε πρέπει να είναι public και static ωστε να μπορει να χρησιμοποιηθεί απο τα PageMethods του ScriptManager. Σημειώνω πως το πεδίο BirthDate είναι Nullable διότι θα του περάσουμε null τιμη σε ένα από τα 2 αντικείμενα μας.
Στην μέδοθο GetVal δημιουργούμε 2 αντικείμενα της κλάσης Info και επιστρέφουμε μια λίστα με αυτά τα αντικείμενα. Επίσης δημιουργούμε μια τεχνιτή καθυστέρηση 2.5 secs.
Τέλος προσθέτουμε στην σελίδα μας την απαραίτητη javascript η οποία είναι...
Αρχικά έχουμε την exec() η οποία καλεί την server-side μέθοδο GetVal ασύγχρονα. Μετά αν η κλήση είναι επιτυχής τότε καλείτε η onComplete και για κάθε item του args που συγκερκιμένα είναι τύπου Info δημιοιυργούμε μια περιοχή η οποία χρησιμοποιεί το template που ορίσαμε πιο πάνω και κάνει generate τον html κωδικα που έχουμε ορίσει.
Αυτό ηταν! Νομίζω ότι είναι αρκετά απλό και με αυτό τον τρόπο μπορούμε να δημιουργούμε layouts πολύ εύκολα και με αυτό τον τρόπο μειώνουμε δραματικά το processing που γίνεται στον server καθώς το μεγαλύτερο κομμάτι γίνεται client-side!
