[ jablan @ 17.03.2005. 13:09 ] @
Dakle, čudna stvar se događa ili ja previđam neku očiglednu stvar...

Na veb formu dodam text box i postavim mu EnableViewState na false.

Dodam i jedan button, čisto da može da se izazove postback.

Startujem aplikaciju.

Upišem nešto u textbox.

Kliknem dugme.

Izvrši se postback.

I sad:

U textboxu i dalje stoji vrednost koju sam ukucao, iako mu je isključeno učitavanje viewstate-a.

Zašto?!
[ mmix @ 17.03.2005. 14:31 ] @
Previđaš očiglednu stvar.

Nakon što se objekat stranice instancira u pojednostavljenom scenariju kontrola prvo učita sve što ima (ako ima) iz ViewState-a, a zatim učita vrednosti koje postoje u POST paketu, a za TextBox to je vrednost ukucana u polje. Ako hoćeš da obrišeš sadržaj TextBox-a na svaki postback moraćeš da postaviš Text na "" u Page_Load eventu.
[ jablan @ 17.03.2005. 14:48 ] @
Hm, pa jeste da sam je prevideo, ali nije da je baš očigledna.

Tj. odakle to da kontrole učitavaju i ono što nađu međ' POST parametrima? Deder neki hint, link na MSDN, bilo koje racionalno objašnjenje...
[ mmix @ 17.03.2005. 18:08 ] @
Imam to u ovoj knjizi koju šatro proučavam za MCSD (PrepLogic serija od QUE-a), online sam našao samo ovo, baci pogled na ovaj link:

Web Forms Page Processing u odeljku "Stages in Web Forms Processing", imaš liniju:

ASP.NET Page Framework Initialization
The page's Page_Init event is raised, and the page and control view state are restored.
During this event, the ASP.NET page framework restores the control properties and postback data.

Tehnički, da se ne dešava dodela vrednosti iz postback-a, nikad ne bi mogao da dođeš do unesene vrednosti preko instance TextBox objekta, sem da ručno pretražuješ Forms kolekciju kao u stara dobra ASP vremena
[ jablan @ 17.03.2005. 21:54 ] @
Citat:
mmix: Tehnički, da se ne dešava dodela vrednosti iz postback-a, nikad ne bi mogao da dođeš do unesene vrednosti preko instance TextBox objekta, sem da ručno pretražuješ Forms kolekciju kao u stara dobra ASP vremena :)

Otprilike kapiram. No, zar ne bi tehnički i moglo, dodavanjem još jednog polja na kontrolu (umesto pretraživanja Forms kolekcije), koje bi automatski dobijalo vrednost prosleđenu kroz parametre zahteva. Polje Text bi bilo prazno, osim u slučaju korišćenja viewstate-a, kada bi .NET automatski kopirao iz ovog drugog polja u polje Text.

Mislim, uporan sam jer se cela ova priča protivi mojoj laičkoj logici da ViewState služi za pamćenje vrednosti i ubeđenju da, kad mi ustrebaju, mogu da dobijem staromodne ASP-like kontrole isključivanjem istog.
[ mmix @ 22.03.2005. 19:35 ] @
Citat:
jablan: Otprilike kapiram. No, zar ne bi tehnički i moglo, dodavanjem još jednog polja na kontrolu (umesto pretraživanja Forms kolekcije), koje bi automatski dobijalo vrednost prosleđenu kroz parametre zahteva. Polje Text bi bilo prazno, osim u slučaju korišćenja viewstate-a, kada bi .NET automatski kopirao iz ovog drugog polja u polje Text.


Sta cemo kad imas obe vrednosti? Dakle uneses jednu vrednost, uradis postback, ta vrednost udje u viewstate, korisnik promeni polje i uradi novi postback i eto belaja

Citat:
jablan:
Mislim, uporan sam jer se cela ova priča protivi mojoj laičkoj logici da ViewState služi za pamćenje vrednosti i ubeđenju da, kad mi ustrebaju, mogu da dobijem staromodne ASP-like kontrole isključivanjem istog.


ViewState sluzi za sta mu ime kazuje, da pamti stanje "view-a", tj izgleda kontrole. Posto se to ustvari svodi na sve propertije sem glavne vrednosti jeste mozda malo zbunjujuce, ali sljaka. Nazalost, meni nije poznato da se asp.net moze spreciti da prebaci POST podatke u kontrole, ali ne vidim ni neku korist od sprecavanja toga. Narocito sto cim se odvojis od "prve linije" kontrola na npr. editable grid u panelu, IDovi kontrola dobiju dinamicke vrednosti tipa __grid1_col2_edit (lupam ovo napamet ali nisam daleko). Muka mi od same pomisli da ovo treba da parsiram rucno.
Cela prica oko asp.net-a je u stvari manje ili vise uspesan pokusaj da se stateless protokol kakav je http sto vise priblizi statefull modelu winforms aplikacija. Odrzavanje primarne vrednosti kontrola je jedna od manje zapazenih osobina statefull modela (valjda zato sto je uzimamo zdravo za gotovo).