SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => ASP .NET => Mensaje iniciado por: vicpin_mm en Martes 13 de Julio de 2010, 19:57

Título: Uso de variables globales
Publicado por: vicpin_mm en Martes 13 de Julio de 2010, 19:57
Hola, soy relativamente nuevo en asp.net, y necesito ayuda.
No entiendo por que no puedo hacer lo siguiente:

Tengo dos botones, uno "cambiar" que pone valor a 3, y otro comprobar, que carga en un label el contenido de valor:

public partial class _Default : System.Web.UI.Page
{
    int valor;

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void cambiar_Click(object sender, EventArgs e)
    {
        valor = 3;
    }
    protected void comprobar_Click(object sender, EventArgs e)
    {
        Label1.Text = valor.ToString();
    }
}

Pues bien, si pulso  "cambiar" y despues "comprobar", el valor es 0. ¿Que es lo que pasa?
Título: Re: Uso de variables globales
Publicado por: Newtek en Lunes 19 de Julio de 2010, 16:37
Vi esto el Viernes y pense que alguien te contestaria durante el fin de semana... bueno...

La cosa es asi... La clase esta corriendo en el servidor y cuando haces click en el boton.. el form que corre en el cliente esta manda la informacion a la clase... esta almacela el valor en el Int que creastes ...que por cierto no es la mejor forma de hacerlo ya que deberias de crearlo como propiedad pero en fin para efectos de ejemplo eso esta bien.

La clase lo guarda y lo almacena. Ahora bien cuando precionas el otro boton la informacion del ciente viaja a la clase... y aqui esta el punto... que es lo que pasa?... bueno basicamente el Framework vuelve a crear la clase y a inicializar los valores de la misma... dentro del servidor. por eso es que se "pierde" el valor que le asignastes inicialmente al int.

Esta es la forma en que funciona el Framework. Cada vez que un evento corre en el Cliente la informacion viaja al servidor y es creada en el servidor de nuevo. Hay metodos para evitar eso como el postback y almacenar  el valor de la propiedad en una variable de secion.

Bueno esas son cosas basicas que hay que tener en consideracion a la hora de crear formularios y trabajar con codigo cliente-servidor.

Saludos si ocupas mas informacion yo con mucho gusto.


Newtek
Web Hosting, Design, Development & SEO at Newtek Web Hosting (http://www.newtekwebhosting.com?id=000231)
Título: Re: Uso de variables globales
Publicado por: vicpin_mm en Lunes 19 de Julio de 2010, 16:55
Okey, gracias por tu respuesta.