Καλησπέρα.
Προσπαθώ να δημιουργήσω ένα web control όπως η επισυναπτόμενη εικόνα.
Έχω 4 radio buttons και 4 αντίστοιχα combo boxes και όλα σε AJAX panel. Σημειώνω ότι έχω μικρή εμπειρία σε AJAX.
Οταν η φόρμα κάνει Load όλα είναι άδεια.
Την πρώτη φορά που επιλεγεί ένα radio τότε γίνεται load από ένα πίνακα της ΒΔ το αντίστοιχο combo και τα υπόλοιπα combos γίνονται ανενεργά. Επίσης κρατάω σε ένα hidden field ότι αυτό το combo το έχω κάνει bind.
To ίδιο γίνεται για όλα τα radio με τα αντίστοιχα combos και τα αντίστοιχα hidden fields που κρατούν το flag γεμίσματος.
Τα combos γίνοναι load από διαφορετικούς πίνακες της ΒΔ και εδώ υπάρχει μια ιδιαιτερότητα. Όλοι οι πίνακες έχουν περίπου 30 εγγραφές αλλά ο πίνακας για το combo4 έχει 6000.
Η συμπεριφορά που παρατήρησα όταν έτρεξε η φόρμα μου φάνηκε περίεργη για αυτό τα έβαλα στον fiddler να δω τι γίνεται.
Και βλέπω τα ακόλουθα:
Οταν επιλεγεί την πρώτη φορά το radio1 γεμίζει το combo1 με τις 30 εγγραφές από τον πίνακα 1 και κάνει disable τα υπόλοιπα combos. Data transmitted : 15K
Οταν επιλεγεί την πρώτη φορά το radio2 γεμίζει το combo2 με τις 30 εγγραφές από τον πίνακα 2 και κάνει disable τα υπόλοιπα combos. Ομοίως : 15K
Το ίδιο και για το radio3.
Οταν επιλεγεί την πρώτη φορά το radio4 γεμίζει το combo4 με τις 6000 εγγραφές από τον πίνακα 4. Data transmitted : 800K.
Μέχρι εδώ καλά.
Από εδώ και πέρα η συμπεριφορά είναι η ακόλουθη:
Αφού έχει επιλεγεί το radio4 τότε όταν επιλεγεί ένα εκ των radio 1,2,3 γεμίζει τα αντιστοιχα combos 1,2,3 αλλά τότε Data transmitted : 350K. (???? το οποίο είναι το viewstate)
Εαν δε ξαναεπιλέξω radio4 τότε πάλι Data transmitted : 800K.
Είναι λογικό ??
(Μια λύση που βρήκα είναι μετά το πρώτο select να απενεργοποιώ το autopostback των radios και να κάνω την ενεργοποίηση - απενεργοποίηση των combos με javascript. Θα ήθελα όμως να το κάνω με pure AJAX. Γίνεται ? ).
Harry Tsavdaris