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

 

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

Previous Page

Îåêßíçóå áðü ôï ìÝëïò zekia. Τελευταία δημοσίευση από το μέλος zekia στις 08-01-2008, 12:59. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-01-2008, 13:43 38854

    Previous Page

    Έχω το παρακάτω κομμάτι κώδικα:

    if (Page.PreviousPage != null)
            {
                TextBox SourceTextBox = (TextBox)Page.PreviousPage.FindControl("TextBox1");
                if (SourceTextBox != null)
                {
                    TextBox2.Text = SourceTextBox.Text;
                }
            }
    else
       {
    TextBox2.Text = "null"; }

    Η ερώτησή μου είναι γιατί το
    Page.PreviousPage να είναι null; Σε ποιές περιπτώσεις μπορεί να συμβαίνει αυτό και γιατί;
  •  07-01-2008, 13:49 38857 σε απάντηση της 38854

    Απ: Previous Page

    σύμφωνα με το documentation:

    The PreviousPage property is null reference (Nothing in Visual Basic) when the user requests that page directly from the server

    Φαντάζομαι ότι εννοεί ότι είναι null όταν ο χρήστης γράψει το url απευθείας στον browser και δεν επισκεφτεί τη σελίδα μέσω κάποιου link ή post ή redirect από κάποια άλλη. Διόρθωση παρακάτω σε επόμενο μήνυμά μου.

    περισσότερα εδώ: http://msdn2.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx 


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  07-01-2008, 14:34 38861 σε απάντηση της 38857

    Απ: Previous Page

    εγω βέβαια δεν καταλαβαίνω ποιό είναι το νόημα αυτής της συνθήκης αλλα ακόμη κι αν την παραβλέψω δηλ θέλω ο κώδικας να εκτελείται έτσι κι αλλιώς, προκύπτει NullReferenceException στη γραμμή που δηιουργείται το SourceTextBox
  •  07-01-2008, 14:43 38862 σε απάντηση της 38861

    Απ: Previous Page

    Λοιπόν... διορθώνω. Το PreviousPage χρησιμοποιείται σε συνδυασμό με την εντολή Transfer. Η όλη τεχνική λέγεται cross-page posting. Ουσιαστικά τα περιεχόμενα της html form μιας σελίδας γίνονται post σε μια άλλη δεύτερη σελίδα. Σε αυτή την 2η σελίδα μπορείς να χρησιμοποιήσεις το property PreviousPage για να προσπελάσεις πληροφορίες από την 1η. Αν αυτή η 2η σελίδα ανοίξει με άλλο τρόπο (π.χ. αν ο χρήστης πατήσει σε ένα link και μεταφερθεί σε αυτή ή αν ο χρήστης πληκτρολογήσει απευθείας το url της στον browser) τότε το PreviousPage θα είναι null.

    Καλύτερα τώρα; 


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  07-01-2008, 15:01 38865 σε απάντηση της 38854

    Απ: Previous Page

    Για το NullReferenceException μάλλον η Page.PreviousPage.FindControl("TextBox1") επιστρέφει null άρα το Cast σε TextBox χτυπάει

    [Edit ή το Page.PreviousPage ειναι null αν περνάς το if με το χέρι κάτα το debugging]

    Νάσος


    "Success is the ability to go from one failure to another with no loss of enthusiasm."
    Winston Churchill

    "Quality means doing it right when no one is looking."
    Henry Ford

  •  08-01-2008, 12:47 38913 σε απάντηση της 38865

    Απ: Previous Page

    επομένως ο λόγος για τον οποίο η PreviousPage βγαίνει null είναι γιατι στο submit button της φόρμας, έχω βάλει να γίνεται redirect στη δεύτερη σελίδα (κατα το γεγονός πατήματος του κουμπιού). Σωστά; Πως μπορεί ο χρήστης ομως να πηγαίνει σε μια άλλη 2ησελίδα η οποία θα εμφανίζει επεξεργασμένα αποτελέσματα βασισμένα στα στοιχεία που εισήγαγε στη φόρμα; Αυτός ήταν ο λόγος που έψαξα και χρησιμοποίησα στο PreviousPage.
  •  08-01-2008, 12:52 38914 σε απάντηση της 38913

    Απ: Previous Page

    Πρέπει αντί για redirect να χρησιμοποιήσεις την Transfer. Διάβασε λιγάκι στο documentation πως χρησιμοποιείται για να είσαι σίγουρος ότι είναι αυτό που θέλεις. Με 5 λεπτά διάβασμα στο documentation θα γλιτώσεις πολύ χρόνο.

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  08-01-2008, 12:59 38915 σε απάντηση της 38914

    Απ: Previous Page

    Το έψαξα αρκετά με την transfer αλλα δεν κατάλαβα μερικά πράγματα οπότε ξαναέψαξα και βρήκα κατι άλλο, χρησιμοποίησα το PostBackUrl στις ιδιότητες του button και κάνει αυτό που ήθελα. Δεν ξέρω αν είναι ενδεδειγμένο ή όχι, προς το παρόν δουλεύει:)

    Ευχαριστώ πολύ για τις απαντήσεις σας και για το χρόνο σας:)
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems