CLR: .Net / Mono / Boo / Otros CLR > ASP .NET
Session, Application O Qué?????
Güorker:
Hola otra vez,
Si declaras las variables en la página, serán independientes para cada usuario (en eso tienes razon). Pero hay un problema: Cada vez que se llama a la página perderán sus valores a no ser que los guardes de alguna manera. Esto se debe a que las aplicaciones Web son stateless (sin estado).
Para guardar los valores hay distintas opciones entre las que se encuentran las siguientes (cada una con sus ventajas e inconvenientes):
-APlicacion: Lo malo es que se son únicas para todos los usuarios
-Sesion: Se utiliza mucha memoria
-ViewState: Se genera mucho trafico entre el cliente y el servidor
Viendo esto, en mi opinion lo de las variables de sesion es la mejor opcion.
Saludos
carlos_lue:
hola Guorker
muchas gracias por la paciencia y los consejos, ya esta resulto utilizaré algunas variables de session y las demas las declaro globales en la pagina. gracias y saludos.
laurfie:
Hola!
Mi problema/duda es la siguiente:
En el código de mi WebForm tengo una variable de tipo int, que la utilizo como una especie de contador, y cada vez que el usuario realiza un click en un botón, esta se incrementa en 1, realizo otras operaciones y "cargo" en un TextBox del WebForm unos datos.
El problema llega cuando se "refresca" la ventana(al cargar los datos del TextBox), que pierdo el valor de esta variable.¿Por qué? ¿Qué me estoy olvidando?
He probado declarar esta variable en la zona del "Page_Load" despues de comprobar: if (!IsPostBack), pero al usar la variable está fuera de ámbito.
También he intentado declararla como una variable Session (no me parece muy correcto, pero bueno), pero luego no tengo la opcion de "convertir" la variable de tipo 'object' a tipo 'int', sólo puedo a tipo 'string'
Me gustaría hacer lo mismo con otro tipo de variables, como por ejemplo:
string[][]
¿Es tan raro lo que propongo?
Muchas gracias.
Güorker:
Hola,
Tu problema es bastante comun. Tienes que tener en cuenta que una página Web no guarda el estado por lo que cada variable de la página pierde su valor en cada postback (ida y vuelta al servidor).
Se pueden guardar los valores de las variables en el objeto Session, Application o ViewState y despues recuperarlo de ahí. Yo creo que si solo es una variable y de tipo int, lo mas adecuado es que lo guardes en Session o ViewState.
Por lo de que no puedes pasarlo de Object a Int... me parece raro si lo que habias guardado era un int. ¿Como has intntado convertirlo?
Yo creo que seria así:
Guardar variable:
--- Código: Text --- Session["var"] = 8;oViewState["var"] = 8;
Y para Recuperarlo:
--- Código: Text --- int miVar = (int)Session["var"];o int miVar = (int)ViewState["var"];
Saludos y a ver si lo consigues!!
laurfie:
Muchas Gracias!!
Al final lo he resuelto con variables Session.
Probaré con las ViewState (no sabía ni que existían) de todos modos.
Ah! no me convertía a tipo int porque no había puesto '(int)'
:P
Muchas gracias de nuevo, y sobre todo por la rapidez de la respuesta.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa