Sería muy sencillo. El viewstate (aunque no sería una definición oficial) lo podrías ver como una variable global dentro de tu página. Por lo que, independientemente donde se haya modificado su valor, este será accesible en cualquier otra parte de la página.
Por ejemplo: digamos que tu variable/viewstate lo quieres dejar por default en false
La primera vez que entras a la página le pones un valor default
Código:
Page_Load(object sender, EvevntArgs e)
{
if(!isPostBack)
{
ViewState["encendido"] = true;
}
}
Luego tienes un botón o imagebutton o cualquier control que "enciende" tu variable
Código:
Button1_Click(object sender, EventArgs e)
{
ViewState["encendido"] = true;
}
Puedes tener otro botón que apague tu variable
Código:
Button2_Click(object sender, EventArgs e)
{
ViewState["encendido"] = false;
}
Por ultimo podrías tener un botón de apagado y encendido
Código:
Button3_Click(object sender, EventArgs e)
{
ViewState["encendido"] = (ViewState["encendido"] == false);
}
Como puedes ver, no es necesario que le envies como parámetro el valor de "encendido" a cada método, sino que lo tienes accesible en cualquier parte de la misma página.
**El viewstate esta activo dentro de la misma página. Una vezque te sales de la página actual, pierdes el viewstate de esa página.
Espero te sea de ayuda.