Session Variable

Hallo Surfer,

ich hab 2 Seiten, WebForm1 und WebForm2.
Auf WebForm1 hab ich ein Textfeld, dessen Eingabe ich in der Session VarVariable „Name“ abspeichere.
Auf WebForm2 hab ich einen Label, in dem ich die vorher auf WebForm1 gefüllte SessionVariable „Name“ anzeigen will.

WebForm1:
private void TextBox1_TextChanged(object sender, System.EventArgs e)
{
Session[„Name“] = TextBox1.Text;
}

WebForm2:
private void Page_Load(object sender, System.EventArgs e)
{
Label1.Text = Session[„Name“].ToString();
}

Ich bekomm die Fehlermeldung: „Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt“ für die Zeile: Label1.Text = Session[„Name“].ToString();

Wie soll so ein Objektverweis ausschaun, wo muss ich ihn setzten?

Danke,
Marietta

Hallo Marietta,

grundsätzlich ist die Zeile

Label1.Text = Session[„Name“].ToString();

schon richtig. Die Fehlermeldung besagt, das es das Objekt „Name“ nicht im Session-Objekt gibt. Ohne deinen Programmcode nun im Detail zu kennen, würde ich folgendes vorschlagen:

Versuche, in der Webform1 die direkte Zuweisung einer Zeichenfolge (z.B. Session[„Name“] = „IchBinEinObjekt“:wink:. Sollte es mit dieser Zuweisung funktionieren, klappt etwas beim auslesen des Textfeldes nicht (vielleicht wird ein leerstring übergeben …)

Der Fehler tritt bei deinem Problem also nicht dort auf, wo das prog am Ende hängen bleibt sondern irgendwo vorher.

Ich hoffe, ich konnte ein wenig helfen

Gruß

Hauke

Hallo Marietta,

WebForm1:
private void TextBox1_TextChanged(object sender,
System.EventArgs e)
{
Session[„Name“] = TextBox1.Text;
}

Klar, dass das Folgende nur dann funzt, wenn Seite 1 vorher gelaufen ist. Wird der Event auch ausgelöst?

WebForm2:
private void Page_Load(object sender, System.EventArgs e)
{
Label1.Text = Session[„Name“].ToString();
}

Ich schreib das so:

// Zur Vorsicht:
if (Session[„Name“] != null)
Label1.Text = (string) Session[„Name“];

Das Objetk, das Session im Bauch hat ist ja ein String, aber wer kann das sagen? daher explizit sagen.

Wenn ich mich nicht täusche liefert:
Session[„Name“].ToString()
Das Objekt als String, aber nicht dessen Inhalt.

Ich bekomm die Fehlermeldung: „Der Objektverweis wurde nicht
auf eine Objektinstanz festgelegt“ für die Zeile: Label1.Text
= Session[„Name“].ToString();

Existiert zu diesem Zeitpunkt schon das Objekt Label1? Wenn du per Debugger in die Zeile gehst, solltest du das prüfen können.
Üblicherweise erfolgt ein InitializeComponent() im OnInit(). Erst danach existieren die Objekte.

mfg

Dirk.Pegasus

Danke! Beide Hinweise umgesetzt, jetzt haut alles hin.
LG
Marietta