Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Šta je ViewState?

[es] :: .NET :: ASP.NET :: Šta je ViewState?

[ Pregleda: 2738 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon Šta je ViewState?22.12.2014. u 22:29 - pre 112 meseci
Da li neko ukratko može da objasni šta je ViewState i kada se koristi u praksi(primjer neki i sl.)
Zbunjen sam objašnjenjima s interneta i u kombinaciji if (!IsPostBack){...}
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Šta je ViewState?23.12.2014. u 10:10 - pre 112 meseci
ViewState sluzi da se neki podatak sacuva izmedju dva poziva strane.
Razlog za njegovo postojanje je to sto, nakon sto se stranica jednom posalje, nemamo nikakvu vezu sa njom pa moramo nekako da sacuvamo stanje koje smo imali na serveru da bismo mogli da ga rekonstruisemo kada se strana ponovo ucita (ViewState je jedno od resenja tog problema).

Primer:
Imas Label-u: <asp:Label Text="Primer" />
I imas neki Button na ciji klik hoces da uradis nesto sa tim tekstom.
Kada se stranica prvi put ucita, ta labela ce se renderovati u.. ne secam se, recimo <span>Primer</span> i to ce se poslati klijentu. Problem je u tome da mi vise nemamo nikakvu informaciju o Labeli. Ne mozemo mi span da konvertujemo nazad u labelu iz (vise razloga, pre svega, nece nam na server ni doci taj span, drugo i da dodje, ne znamo da li je on bio labela ili plain html itd.).
Zbog toga postoji jedno <input type="hidden" name="__VIEWSTATE" /> polje u kojem se smestaju informacije o toj labeli pa kada se uradi ponovno ucitavanje strane, server iz tog podatka rekonstruise Label objekat.
Treba imati na umu da se <input> polja salju samo kada se uradi submit forme, pa tako i ViewState. Da li je to slucaj se proverava sa Page.IsPostback.

Problem sa ViewState-om je sto ukoliko imas mnogo podataka koji se cuvaju u njemu povecavas kolicinu podataka koje setas izmedju klijenta i servera pa to moze da uspori ucitavanje strana, trosi serverske resurse i protok.
 
Odgovor na temu

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon Re: Šta je ViewState?23.12.2014. u 16:19 - pre 112 meseci
Citat:
Shadowed: ViewState sluzi da se neki podatak sacuva izmedju dva poziva strane.
Razlog za njegovo postojanje je to sto, nakon sto se stranica jednom posalje, nemamo nikakvu vezu sa njom pa moramo nekako da sacuvamo stanje koje smo imali na serveru da bismo mogli da ga rekonstruisemo kada se strana ponovo ucita (ViewState je jedno od resenja tog problema).

Primer:
Imas Label-u: <asp:Label Text="Primer" />
I imas neki Button na ciji klik hoces da uradis nesto sa tim tekstom.
Kada se stranica prvi put ucita, ta labela ce se renderovati u.. ne secam se, recimo <span>Primer</span> i to ce se poslati klijentu. Problem je u tome da mi vise nemamo nikakvu informaciju o Labeli. Ne mozemo mi span da konvertujemo nazad u labelu iz (vise razloga, pre svega, nece nam na server ni doci taj span, drugo i da dodje, ne znamo da li je on bio labela ili plain html itd.).
Zbog toga postoji jedno <input type="hidden" name="__VIEWSTATE" /> polje u kojem se smestaju informacije o toj labeli pa kada se uradi ponovno ucitavanje strane, server iz tog podatka rekonstruise Label objekat.
Treba imati na umu da se <input> polja salju samo kada se uradi submit forme, pa tako i ViewState. Da li je to slucaj se proverava sa Page.IsPostback.

Problem sa ViewState-om je sto ukoliko imas mnogo podataka koji se cuvaju u njemu povecavas kolicinu podataka koje setas izmedju klijenta i servera pa to moze da uspori ucitavanje strana, trosi serverske resurse i protok.



Da li npr. View State koristimo, ako se korisnik želi registrovati na našu stranicu i "slučajno" klikne na button(back/submit i sl.) mi sačuvamo sva polja(textboxove npr.) u ViewState-u i nakon što korisnik želi nastaviti proces registracije, učitaju se podaci koji su do tada bili ispunjeni u textbox-ovima(tj. nastavi gdje je stao)???
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Šta je ViewState?23.12.2014. u 18:35 - pre 112 meseci
Ne, za to što si opisao se koristi Session.
 
Odgovor na temu

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon Re: Šta je ViewState?23.12.2014. u 20:30 - pre 112 meseci
Citat:
dusans: Ne, za to što si opisao se koristi Session.


Da li je, u slučaju registracije korisnika(nešto pogriješi), klikne submit, stranica ne refreshuje podatke/ne briše ih, nego čuva prethodno stanje registracije?
Da li je dovoljno samo uključiti ViewState, ili ga eksplicitno navodimo + šta će pohranjivati?
Do kada vrijedi ViewState, samo dok smo na toj WebFormi(stranici/page) ili?
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Šta je ViewState?23.12.2014. u 21:38 - pre 112 meseci
ViewState se formira prilikom prvog poziva stranici a kasnije se učitava i updejtuje prilikom postback-ova.
Kada uradiš refresh stranice, ViewState kreće iz početka kao da si prvi put pozvao stranicu.

ViewState je jedan od ključnih delova statefull mehanizma Asp.Net stranica, i koriste ga gotovo sve serverske kontrole.
Da bi shvatio šta, ko, kada, kako i zašto koristi ViewState, moraš razumeti na prvom mestu
kako radi sirovi web kao stateless protokol i kako asp.net pravi na toj osnovi nešto što je "statefull".
Mehanizam više tehničke prirode i nije uopšte "prost" da bi se mogao napisati ili shvatiti u par rečenica.
U globalu, radi ono što ti je Shadowed napisao.
Za početak: https://www.google.rs/?#q=asp.net+page+life+cycle

Kada shvatiš "big picture", shvatićeš i svrhu ViewState-a.


 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Šta je ViewState?

[ Pregleda: 2738 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.