ASP.NET viewstate

Tags:    asp.net

<< < 123 > >>
Hey Udviklere.

Har en simple ASP.NET side, hvor der bliver lavet et postback til serveren når en knap bliver trykket.

Mit spørgsmål omkring dette er. Jeg har 8 tekstbokse som har værdier jeg gerne ville gemme inden postback'et sker, og derefter "loade" disse værdier tilbage efter mit postback.

Jeg har prøvet at gemme disse værdier i viewstates, men kan ikke rigtig finde ud af at få dem loadet ind igen, når siden bygges på ny efter sit postback.

Håber nogle kan pege mig i den rigtige retning.

Tak på forhånd.



22 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Du roder lidt rundt i det

Meget muligt der bliver rodet lidt. Har jo prøvet at finde en løsning.

hvorfor ikke bare putte det direkte over i dit tekst felt?


Hvis jeg bare siger
Fold kodeboks ind/udCSharp kode 


Så ender jeg op med blanke tekstbokse.



Indlæg senest redigeret d. 23.07.2012 12:58 af Bruger #16700
Du bør kunne finde ud af ret meget hvis du sætter nogle debug-mærker - det er fx umuligt for os at se om værdierne i din arraylist er tomme og koden derfor faktisk gør som den skal så problemet fx ligger i din getTable-metode.



(String)tableReturned[0]; til [9]

Indeholder værdier. Tjekkede jeg i debug mode.



Har du tjekket om TextBox_id.Text indeholder den forventede værdi lige efter at linjen hvor du assigner en værdi til den er kørt?


Ja. I debug mode indeholder TextBox_modelNr.Text den forventede værdi.
Men lige så snart jeg i debug mode når til } lukke tegnet for metoden. Så mister jeg værdierne igen.

Har du tjekket om du måske overskriver værdierne et andet sted i din kode?

Jeg har ikke andre steder i min kode hvor disse tekstbokse kunne bliver overskrevet. Så vidt jeg ved så bliver Page_Load() kørt efter metoden. Er det dette som gør at værdierne bliver "glemt"?



Indlæg senest redigeret d. 23.07.2012 14:51 af Bruger #16700
Prøv at poste hele sidens kode, både markup og CodeBehind, gerne i separate kodebokse :)

Mvh.

Kasper (TSW)



Hey drenge, har været væk fra forummet i noget tid. Men problemet skal jo helst løses :) med min noob viden + jeres mere udvidet viden.

Du har ikke i din Page_load noget kode der sætter tekstboksene til ingenting? Eller i din markup sat text="" vel?


Som sådan ikke nej. Men fandt hvad jeg ville mene problemet er.

I min PageLoad() kalder jeg en metode som så igen kalder en anden metode hvor følgende sker.

Fold kodeboks ind/udCSharp kode 


Så (udfra hvad min viden kan fortælle mig og ASP.NET) det er vel dette som "nulstiller" mine tekstbokse.

Så #1 er der en bedre måde at oprette disse tekstbokse udover at gøre det i ens pageload, hvis det overhoved er den rigtige måde at gøre det på.

Eller #2 er der en måde at gemme mine værdier i tekstboksene, f.eks i en viewstat og så ligge disse værdier tilbage i de tekstbokse som bliver oprettet i PageLoad(), efter de er blevet oprettet.

Eller en hel trejdle måde.

Er der andent i skal vide for at hjælpe mig yderligere?



Indlæg senest redigeret d. 03.08.2012 09:43 af Bruger #16700
Det er næsten umuligt at gennemskue hvad der sker når du kun poster enkelte dele af dine filer. Husk dog på at ASP.NET, så vidt jeg husker i hvert fald, ikke gemmer ViewState for dynamisk genererede controls. Det kan være det der er dit problem. Ellers vil jeg nok, igen, foreslå at du poster ASPX og CodeBehind filerne, i deres fulde længder.

Mvh.

Kasper (TSW)



Og du har et tjek på i din pageload, at det ikke er postback, inden du kalder opsætningen af alle de textboxe?



Det er næsten umuligt at gennemskue hvad der sker når du kun poster enkelte dele af dine filer. Husk dog på at ASP.NET, så vidt jeg husker i hvert fald, ikke gemmer ViewState for dynamisk genererede controls. Det kan være det der er dit problem. Ellers vil jeg nok, igen, foreslå at du poster ASPX og CodeBehind filerne, i deres fulde længder.


Lad mig pointere at dette projekt formentlig har nogle fejl som med alle begynder ting. Så variablerne har formentlig også nogle navne som test og alt det knald, da mange af tingene har været learning by doing. Og en masse test af forskellige funktioner er noget jeg har rodet med.

PageLoad()
Fold kodeboks ind/udCSharp kode 


dal.ConnectionDB_RetriveList();
Fold kodeboks ind/udCSharp kode 


l.addFirstTable(myDataReader);
Fold kodeboks ind/udCSharp kode 


Og du har et tjek på i din pageload, at det ikke er postback, inden du kalder opsætningen af alle de textboxe?

Jeg havde et tjek tidligere på !isPostback. Men fik af vide at når man trykker på en knap så er det altid et postback som bliver lavet.



Indlæg senest redigeret d. 03.08.2012 10:10 af Bruger #16700
Hmmm. Prøv at slette "enableviewstate=true", det er ikke nødvendigt.

Og så skal du ikke tilføje alle dine kontroller og deres værdier igen ved postback. Så sæt dit !isPostback tjek rundt om det igen.



<< < 123 > >>
t