Page controls holder samme tilstand efter postback?

Tags:    asp.net

Hej.

Jeg har en side med nogle controls der udgør en form. Textboxes osv. Når brugeren trykker på en knap, indlæses f.eks. disse textbox.text properties i sessionen. Hvis brugeren har gjort noget galt, indlæses samme side igen, og jeg tømmer så alle disse sessions variable over i disse controls således at der står den samme tekst som da brugeren trykkede på knappen istedet for at felterne nu står tomme.

Problemet opstår nu når brugeren skal rette sin fejl, eller noget andet i disse tekstbokse. For de indtastede ændringer sker nemlig ikke. Når jeg i min aspx.cs fil indlæser textbox.text igen, er det den gamle udgave/tekst som der bliver udlæst. De nye værdier er altså ignoreret.

Hvad sker der, og hvordan undgår jeg det?
Har forsøgt at ændre på textbox properties, men uden held :(

På forhånd mange tak!! :)

Mvh
Lars



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Er det ikke blot at bruge ViewState? Det lyder som det mest oplagte til formålet og er jo som standard slået til hvis du ellers laver et almindeligt ASP.NET website. Men det kan være du skal prøve at poste din kode hvis du vil have os til at tage et kig på det :)

Mvh.

Kasper (TSW)



Er du sikker på du ikke mangler en if sætning der ser om der er et postback?

if (Page.IsPostBack)
{
}



Hmm. Jeg kan ikke se hvordan det kan hjælpe mig?
Det er sådan set ligemeget om det er postback eller ej, det er de nyeste værdier i tekstfelterne jeg er interesseret i så snart knappen trykkes og logikken bag køres..


Er du sikker på du ikke mangler en if sætning der ser om der er et postback?

if (Page.IsPostBack)
{
}


Så skal du vel i din postback sætte det data du skal have i dine tekstbokse?



Hmm. Jeg kan ikke se hvordan det kan hjælpe mig?
Det er sådan set ligemeget om det er postback eller ej, det er de nyeste værdier i tekstfelterne jeg er interesseret i så snart knappen trykkes og logikken bag køres..


Er du sikker på du ikke mangler en if sætning der ser om der er et postback?

if (Page.IsPostBack)
{
}




Hmm.. Jeg ved ikke om det er mig der misforstår noget her, eller jeg ikke har forklaret mig godt nok :)

Lad mig prøve med følgende scenarie:

1. Bruger indtaster "john" i et navnefelt
2. Bruger trykker på knappen
3. Codebehind aflæser "john" fra navnefeltet
4. Codebehind sender dog brugeren tilbage til samme sidde, da noget andet ikke var indtastet korrekt
5. Bruger retter det som var galt, men ændrer også navnefeltet til "hans"
6. Bruger trykker på knappen
7 Codebehind aflæser navnefeltet til "john", og ikke den nye værdi "hans" - Hvorfor?

Gav det mere mening? :)

Tak!



Det var egentligt det jeg oprindeligt havde forsøgt mig med, men uden at det fungerede. Det gør det så nu.

Mange tak for hjælpen! :)



t