ViewState je vlastnost každého controlu zděděná od System.Web.UI.Control (má ji tedy i Page) a jeho základní funkčnost je založena ná následující implementaci vlastností:
public string NavigateUrl { get { string text = (string) ViewState["NavigateUrl"]; if (text != null) return text; else return string.Empty; } set { ViewState["NavigateUrl"] = value; } }Hodnoty vlastností (property) se tedy ukládají do a čtou z ViewState, veškeré jejich změny se promítají do ViewState.
public string NavigateUrl { get { string text = (string) ViewState["NavigateUrl"]; if (text != null) return text; else return string.Empty; } set { ViewState["NavigateUrl"] = value; } }
<script runat="server"> private void btnSubmit_Click(object sender, EventArgs e) { lblMessage.Text = "Goodbye, Everyone!"; } </script> <asp:Label runat="server" ID="lblMessage" Font-Name="Verdana" Text="Hello, World!"></asp:Label><br /> <asp:Button runat="server" Text="Change Message" ID="btnSubmit"></asp:Button><br /> <asp:Button runat="server" Text="Empty Postback"></asp:Button>
Co se stane při první návštěvě stránky:
Co se stane při kliku na Change Message tlačítko:
Co se stane při kliku na Empty postback tlačítko:
Viz též článek ViewState vs. fáze Init, aneb jak jsem se chytil.
Robert Haken, ASP.NET MVP
PingBack from http://www.clickandsolve.com/?p=20537
Asi nejlepší text o viewstate, který jsem kdy četl, je zde: http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx
To by měl každý vědět o ViewState.