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

 

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

Session με username

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

    Session με username

    Καλησπέρα σε όλους.

    Έχω το εξής πρόβλημα. Έχω φτιάξει μια σελίδα που κρατάει σε ενα session το username μετά το login, και σε μια master page το εμφανίζω σε ενα label. Όλα πάνε καλά την πρώτη φορά.Το πρόβλημα είναι οτι όταν κάνει reload η master page από μια άλλη σελίδα βγάζει error "Object reference not set to an instance of an object."

    Ο κώδικας είναι ο εξής:

            string currentenduser;
            currentenduser = (string)Session["CurrentEndUser"];
            Label lbsession = (Label)FindControl("lbsession");
            lbsession.Text = currentenduser;   <---Εδώ χτυπάει

     

    Ευχαριστώ εκ των προτέρων

  •  07-07-2008, 14:49 43309 σε απάντηση της 43306

    Απ: Session με username

    Το πρόβλημα είναι ότι το lblsession δεν υπάρχει. Μπορέις να μας δώσεις περισσότερο κώδικα για να καταλάβουμε τι πας να κάνεις και να βρούμε το λάθος?

     


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  07-07-2008, 15:02 43310 σε απάντηση της 43309

    Απ: Session με username

    Βεβαίως και να δώσω περισσότερο κώδικα.

    Λοιπόν, στη σελίδα Login έχω γράψει

    Session["CurrentEndUser"] = base.CurrentEndUser.FirstName;

    Response.Redirect("FrontEnd/StartPage.aspx");

    όπου αποθηκεύει τον χρήστη που έκανε login και τον ξαναστέλνει στη αρχική σελίδα. Αυτή αποτελείται από μια master.aspx στην οποία έχω βάλει το

    <asp:Label ID="lbsession" runat="server"></asp:Label>

    και στην master.aspx.cs έχω βάλει

    protected void Page_Load(object sender, EventArgs e)

    {

    string currentenduser;

    currentenduser = (string)Session["CurrentEndUser"];

    Label lbsession = (Label)FindControl("lbsession");

    lbsession.Text = currentenduser;

    if (lbsession.Text != "")

    {

    Label Label1 = (Label)FindControl("Label1");

    Label1.Visible = true;

    Label1.Text = "Welcome user:";

    }

    }

    Όταν γυρνάει στη StartPage.aspx εμφανίζεται κανονικά ο user. Όταν όμως θελήσω από εκεί να πάω σε μια αλλη σελίδα (η οποία αποτελείται από την ίδια master) τότε βγάζει το error. Λές και χάνει το Label;;; Γίνεται αυτό;;;

  •  07-07-2008, 16:19 43312 σε απάντηση της 43310

    Απ: Session με username

    Απορία. Σε τί σου χρησιμεύει αυτή η γραμμή;

    Label lbsession = (Label)FindControl("lbsession");


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  07-07-2008, 16:27 43313 σε απάντηση της 43312

    Απ: Session με username

    Χωρίς αυτό μου βγάζει το μήνυμα "The name 'lbsession' does not exist in the current context masterpage.master.cs " οπότε το βάζω για να το δει.

  •  07-07-2008, 16:43 43315 σε απάντηση της 43313

    Απ: Session με username

    αν κατάλαβα καλά έχεις μιά masterpage.master και μια master.aspx. O κώδικας που μου παρέθεσες είναι στη masterpage.master.cs  και το control στη master.aspx. Αν ναι τότε δοκίμασε αυτό

    FindControl("Content").FindControl("lbsession")


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  07-07-2008, 16:55 43316 σε απάντηση της 43315

    Απ: Session με username

    Sorry για την παράλειψη.

    Δοκίμασα αυτό που μου είπες και τώρα χτυπάει από την πρώτη φορά που κάνω run το κώδικα.Sad

  •  07-07-2008, 17:21 43317 σε απάντηση της 43316

    Απ: Session με username

    Βασικά αυτό που πρέπει να κάνεις, αν θές να βρεις ενα control μιας σελίδας στη master, είναι πρώτα να βρείς τον contentplaceholder όπως εδώ

    http://weblogs.asp.net/vikram/archive/2008/02/27/how-to-refer-master-page-content-in-content-page.aspx

    Δες το παράδειγμα και προσάρμοσε το ανάλογα στον κώδικά σου 


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  08-07-2008, 10:37 43332 σε απάντηση της 43317

    Απ: Session με username

    Σ'ευχαριστώ πάρα πολύ για τις απαντήσεις σου, το θέμα είναι όμως οτι το παράδειγμα, αναφέρεται σε control που το ψάχνει από άλλη σελίδα (while using a master page we want to refer content, Controls and properties in Master Page while working in Content page), ενώ εγώ το ψάχνω στην ίδια τη masterPage.master.cs

    Πραγματικά δεν μπορώ να καταλάβω ποιό είναι το λάθος και θα τρελαθώ.Ick!  Πώς γίνεται την πρώτη φορά να μην χτυπάει και αφού γεμίσει με δεδομένα και πατήσω να πάω σε άλλη σελίδα, εκεί να μην το βρίσκει.Tongue Tied

  •  08-07-2008, 11:00 43335 σε απάντηση της 43332

    Απ: Session με username

    Πραγματικά κάποιες στιγμές, μου έρχεται τρέλα. Ick!  Crying Τελικά το λάθος δεν ήταν στο κώδικά μου, αλλά στις επόμενες aspx που χτύπαγα είχανε βάλει να ζητάει άλλες master οπότε έχανε τα αβγά και τα πασχάλια! Αυτά γίνονται όταν ανακατέονται πολλοί στο κώδικα.

    PAK ...Σ' ΕΥΧΑΡΙΣΤΩ ΠΡΑΓΜΑΤΙΚΑ ΠΑΡΑ ΠΟΛΥ ΓΙΑ ΤΗΝ ΑΝΤΑΠΟΚΡΙΣΗ ΣΟΥ!!!!Smile

  •  08-07-2008, 13:44 43343 σε απάντηση της 43332

    Απ: Session με username

    bobini:

    Σ'ευχαριστώ πάρα πολύ για τις απαντήσεις σου, το θέμα είναι όμως οτι το παράδειγμα, αναφέρεται σε control που το ψάχνει από άλλη σελίδα (while using a master page we want to refer content, Controls and properties in Master Page while working in Content page), ενώ εγώ το ψάχνω στην ίδια τη masterPage.master.cs

    Πραγματικά δεν μπορώ να καταλάβω ποιό είναι το λάθος και θα τρελαθώ.Ick!  Πώς γίνεται την πρώτη φορά να μην χτυπάει και αφού γεμίσει με δεδομένα και πατήσω να πάω σε άλλη σελίδα, εκεί να μην το βρίσκει.Tongue Tied

    Εγώ αυτό κατάλαβαSmile! Θα το καταλάβεις στην διευκρινιστική ερώτηση. Άρα αφού είναι στην ίδια σελίδα νομίζω ότι εκείνο το findcontrol() δεν χρειάζεται..


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems