Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Data Grid pager - απορία

Îåêßíçóå áðü ôï ìÝëïò Νατάσα Μανουσοπούλου. Τελευταία δημοσίευση από το μέλος kkara στις 04-11-2005, 10:16. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-11-2005, 17:57 6669

    Data Grid pager - απορία

    Για να κάνω customize τον pager ενός data grid, ο οποίος by default έχει το μαύρο του το χάλι, είμαι υποχρεωμένη να προσθέσω τα επιπλέον controls στο ItemCreated. Σε οποιοδήποτε άλλο σημείο (ItemDataBound, PreRender, Render), τα controls μπαίνουν και μετά εξαφανίζονται από προσώπου γης.

    Μπορεί κανένας καλός άνθρωπος να μου εξηγήσει αυτή τη συμπεριφορά;


    Νατάσα Μανουσοπούλου
  •  03-11-2005, 23:21 6679 σε απάντηση της 6669

    Απ: Data Grid pager - απορία

    Που είναι τα controls; οεο; Που είναι τα controls; οεο; Big Smile [:D]

    Αν καταλαβαίνω καλά από τη φράση
     mns wrote:
    τα controls μπαίνουν και μετά εξαφανίζονται από προσώπου γης
    αυτό που εννοείς είναι ότι τα controls προστίθενται, αλλά δεν υπάρχουν μετά από το επόμενο postback. Αν αυτό είναι όντως που εννοείς τότε ισχύουν τα εξής. Γενικά, όταν προσθέτεις controls από τον κώδικα, δεν υπάρχουν στο επόμενο Postback (εκτός φυσικά κι αν τα προσθέτεις κάθε φορά). Το ASP.NET δεν κρατάει το state αυτών των control, παρά μόνο αυτών που υπάρχουν "κανονικά" (δηλαδή στο .aspx ή .ascx) (εκτός κι αν τα προσθέσεις στο OnInit). Όμως, το event ItemCreated καλείται κάθε φορά που γίνεται PostBack. Αυτό συμβαίνει κατά το LoadViewState της σελίδας, δηλαδή πριν κληθεί το Load event ή οποιοδήποτε άλλο control event καλείται. Αυτός είναι και ο λόγος που μόνο σε αυτή την περίπτωση βλέπεις ξανά τα control σου. Το event ItemDataBound καλείται μονάχα όταν κάνεις DataBind.
    Για να διαπιστώσεις τα παραπάνω βάλε από ένα breakpoint σε κάθε event και δες τι καλείται και με ποιά σειρά κάθε φορά που φορτώνεται η σελίδα. Θα το διασκεδάσεις αρκετά Wink [;)].

    Στερνή μου γνώση να σε είχα πρώτα...
  •  04-11-2005, 08:53 6685 σε απάντηση της 6679

    Απ: Data Grid pager - απορία

    Exactly!

    Αν κάνεις databind στην OnInit της σελίδας (ή του UserControl) σου που περιέχει το DataGrid όσο δεν είσαι ακόμα σε PostBack, τότε τα controls σου θα υπάρχουν και μετά το PostBack ακόμα κι αν τα φτιάχνεις κατά το ItemDataBound.

    Διαφορετικά ο μόνος τρόπος για να τα έχεις μετά το PostBack είναι να τα ξαναφτιάξεις (χωρίς state φυσικα) μέσα στην ItemCreated η οποία καλείται για κάθε Item του DataGrid σου κατά το LoadViewState μετά το PostBack.

    φιλικά
    rousso

    rousso
  •  04-11-2005, 09:44 6688 σε απάντηση της 6669

    Απ: Data Grid pager - απορία

    Δυστυχώς αυτό που εννοώ είναι ότι δεν υπάρχουν ούτε στο πρώτο get. Δε χρειάστηκε να γίνει ούτε postback για να δω τη συμπεριφορά που περιγράφω.
    Νατάσα Μανουσοπούλου
  •  04-11-2005, 10:16 6689 σε απάντηση της 6688

    Απ: Data Grid pager - απορία

    Χμμμ Confused [*-)], υπό αυτές τις συνθήκες, θα πρέπει να δω τον κώδικα που χρησιμοποιείς (έστω στο ItemDataBound). Σιγουρέψου ότι όντως περνάει από εκεί η εκτέλεση του κώδικα (με debugging). Είμαι 99,99999% σίγουρος ότι έχει τύχει κατά καιρούς να προσθέσω controls στο ItemDataBound και έπαιξε μια χαρά...
    Στερνή μου γνώση να σε είχα πρώτα...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems