[ bjevta @ 01.09.2006. 19:15 ] @
Hitno mi trebaju sve moguće ideje na temu uzroka "Failed to load viewstate" greške. SVAKA ideja je dobrodošla. |
[ bjevta @ 01.09.2006. 19:15 ] @
[ Dejan Vesic @ 01.09.2006. 19:34 ] @
* Preveliki ViewState
* Corrupted ViewState (možda zbog nekog JavaScript procesiranja ili load not finished) * pokvaren proksi Da, zaboravio sam: ako imaš dinamičko dodavanje kontrola u stranicu, ili promene svojstava (dodavanje kolona datagrid kontroli), ako ne ideš svaki put istim redom, može doći do ove greške. [Ovu poruku je menjao Dejan Vesic dana 01.09.2006. u 20:45 GMT+1] [ bjevta @ 01.09.2006. 22:01 ] @
Hvala, Dejane
šta podrazumevaš pod "ako ne ideš svaki put istim redom,"? [ Dejan Vesic @ 01.09.2006. 22:40 ] @
Bez obzira da li je post back ili ne, ViewState (pogotovo u 1.1) očekuje isto stablo kontrola na strani da bi "radio" kako treba.
Tu postoiji _mnogo_ više priče; ako te zaista zanima, evo odličnog linka: http://weblogs.asp.net/infinit...y-Understanding-Viewstate.aspx [ bjevta @ 02.09.2006. 22:11 ] @
proguglao sam malo i uhvatila me muka: sve što imam na formi koja "failed to load viewstate" je već pobrojano kao situacije u kojima se dotični exception javlja: grid, check box u gridu, filtriranje podataka pre prikaza u gridu, show/hide kontrola posle postback-a, petljanje po web.config-u, itd. Dodatno, upotrebio sam Atlas i Blowery u web aplikaciji. Da bude još crnje, nikako ne mogu da reprodukujem situaciju na development mašini.
Međutim, izgleda da je u pitanju i to što neki korisnici moje web aplikacije koriste "Back" dugme za šetanje kroz forme za unos podataka. Back na statičkom web sajtu i back u web aplikaciji nije isto. Danas sam se čuo telefonom sa jednim od njih i obavestio ga da NE koristi back u browser-u već dugme "Nazad" koje radi Response.Redirect. Inače, problem se javlja samo kod 2 korisnika, za sada. ima li načina da "uhvatim" taj famozni Back i da, kada korisnik pritisne Back dugme, odradim ono što ja hoću? [ Dejan Vesic @ 02.09.2006. 22:35 ] @
Na žalost, ne postoji kulturan način da sprečiš korisnika da koristi back button.
Postoje prljavštine tipa: ako imaš Stranu 1 i Stranu 2, a na Strani 2 želiš da zabraniš back, onda ovo odradiš na Strani 1: Code: <script> if(window.history.forward(1) != null) window.history.forward(1); </script> ali to ne pomaže dobrom user experience. Ono što možda pomaže je da tvoju aplikaciju lansiraš iz JavaScripta, sa window.open i da kompletno ukloniš toolbar kroz parametre od window.open. Time je korisnik osuđen na kontrole koje mu ti daješ. Dodatno, možeš čak blokirati i backspace taster javascriptom: Code: <script> function KeyCache() { if (window.event && window.event.keyCode == 8) { window.event.keyCode = 123; //Replaces with F12 button. (Does nothing in IE) } } document.onkeydown=KeyCache(); </script> Ono što ja najčešće primenjujem je pametni workflow; zamisli da svaka od stranica obrađuje jedno od stanja procesa. Sad, trenutno stanje držim u session varijabli na serveru. Ako se desi da se pozove stranica a da je tekuće stanje namenjeno ne toj nego nekog drugoj, uradim prost Server.Transfer na stanicu koja je zadužena za obradu. I tu treba razno-raznog žongliranja, ali ga barem odradim na serveru i ne patim se sa client-side svemogućim problemima. [ bunker @ 04.09.2006. 12:41 ] @
Ako otvoris aplikaciju u ful skrinu, bez tulbaraa, hendluj Alt + <- i Alt + ->, forward i backward.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|