2009-08-09 7 views
0
protected void Page_Load(object sender, EventArgs e) 
{ 

    if (!IsPostBack) 
    { 
     lblPostBack.Text = " Text created first time"; 
    } 
    else 
    { 
     if (Session["Counter"] == null) 
     { 
      lblPostBack.Text = "PostBack x however strange becasue if is postback it's mean somebody clicked button and session value has been created"; 

     } 
     else 
     { 
      lblPostBack.Text = "PostBack x should be count here"; 
     } 
    } 
} 
protected void cmd_Click(object sender, EventArgs e) 
{ 
    int _counter; 
    if (Session["Counter"] == null) 
    { 
     _counter = 1; 

    } 
    else 
    { 
     _counter = (int)Session["Counter"] + 1; 
    } 
    Session["Counter"] = _counter; 
    lblPostBack.Text += "Counter: " + _counter.ToString(); 
} 

Antwort

0

Ok funktioniert es, nur FF vermasseln

+0

Nein, ich habe noch ein Problem, ich muss zweimal klicken, um die richtige Nachricht zu haben. Jemand weiß warum? –

0

Ich habe folgende Verfahren hinzugefügt und funktioniert einwandfrei.

private int _counter;

protected void Page_Load(object sender, EventArgs e) 
{ 
(...) 

protected void Page_PreRender (Object sender, EventArgs e) { Session [ "Counter"] = _counter; }

2

Angenommen, dies ist ASP.NET: Es ist, weil das Click-Ereignis auf Ihrer Schaltfläche nach dem Load-Ereignis auf Ihrer Seite ausgelöst wird, so dass die Sitzung nicht festgelegt wurde.

MSDN on the page lifecycle möglicherweise gut lesen - die Schaltfläche klicken ist ein "Postback-Ereignis" in der Tabelle in diesem Dokument.

Wenn ich das falsche Ende des Sticks habe, erläutern Sie bitte, welche Meldungen Sie erhalten, nachdem der Button geklickt hat und was Sie erwartet haben. Einige Framework- und Sprach-Tags zu dieser Frage könnten ebenfalls nicht schlecht sein.

Verwandte Themen