Avatar billede cborg Nybegynder
04. maj 2004 - 01:06 Der er 3 kommentarer og
1 løsning

ASP.NET ViewState spørgsmål

Er igang med en større ASP.NET applikation, og er løbet ind i et større problem. ViewState vokser sig simplethen for stor, og hogger båndbredden. Jeg har prøvet mig frem med forskellige løsninger.

At disable viewstate for nogle controls gør at objektet slet ikke kan refereres. (Skal jeg så bruges Request.Form?)

At disable viewstate for hele siden er heller ikke en brugbar løsning, idet at mange sider allerede er operationelle, og benytter sig alle af (!IsPostBack) og dermed ViewState for at holde styr på elementer (osv) istedet for at bruge SessionsState.

ViewState.Clear(); ser ikke ud til at virke.

Imidlertid har jeg hørt at det er muligt at resette ViewState for en side ved at redirecte tilbage til den? Hvordan kan det lade sig gøre? Eller har i andre løsninger på mit problem.

Virker ViewState.Remove(string key);? I så fald kan jeg jo blot itererer igennem ViewState og slette alt? Eller?
Avatar billede cyb Nybegynder
04. maj 2004 - 11:27 #1
Den optimale løsning er kun at sætte viewstate på de kontroller hvor du virkeligt skal bruge det.
Avatar billede cborg Nybegynder
04. maj 2004 - 14:48 #2
Det kan jeg forstå. Men ved at disable viewstate på kontrollers kan jeg ikke referere til dem længere :( Jeg tror muligvis det er fordi jeg bruger panels som containere til alle kontroller?
Avatar billede cyb Nybegynder
05. maj 2004 - 10:54 #3
Det er klart at du ikke kan referere en kontrol efter et postback hvis den ikke automatisk er blevet populeret fra viewstate. Du kan måske lave din kode således at det ikke er nødvendigt at gemme mere end højest nødvendigt i viewstate, eks. kan et dataset gemmes i session osv.
Avatar billede tomledk Nybegynder
23. maj 2004 - 11:31 #4
En rigtig viewstate-røver er typisk en menu eller et datagrid. Begge dele kan fylde ekstremt meget i viewstaten og der kan det virkelig være værd at overveje om en populate ikke er i orden ved hvert postback - eventuelt kan man jo ligge dataen der anvendes til at populere menuen/datagrid'et i et cache objekt der trækkes på hvis ikke data er ændret.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester