Codebehind. Hvorfor gemmes variabler ikke?
Hej Eksperter.Jeg har ind imellem brug for at gemme en værdi i en variable i codebehind-filerne. Det lader til at fungere lidt anderledes end windows applikationsudvikling. Når jeg sætter en variable lader det til at den ikke bliver gemt. Jeg kunne forestille mig at det er fordi objektet overskrives hver gang der udføres en event på websiden (Postback).
Jeg har lavet et kort eksempel herunder som viser mit problem. Eksemplet viser en boolen-variable som bliver sat "true" når der trykkes på knap1. Trods koden i følge mig selv ser fornuftig ud så bliver variablen aldrig sat til true. Hvad gør jeg galt?
public partial class _Default : System.Web.UI.Page
{
private Boolean buttonClicked;
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = buttonClicked.ToString();
if (!Page.IsPostBack)
{
buttonClicked = false;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
buttonClicked = true;
}
// Udskriver en tekst afhængig af om der er blevet trykket på button1.
protected void Button2_Click(object sender, EventArgs e)
{
if(buttonClicked == false)
Label1.Text = "Der er blev IKKE trykket på knappen!";
else if(buttonClicked == true)
Label1.Text = "Der blev trykket på knappen!";
}
}
