En este artículo vamos a ver manejos de estados a través de las variables de sesión y aplicación y a través de cookies.
En primer lugar, agrego dos elementos al proyecto, elementos del tipo Web Form, para poder luego hacer referencia entre las páginas y mostrar la variable.
En la página principal agregamos una serie de tools, un label que contiene un mensaje del texto a ingresar, un textbox que es el mensaje ingresado (variable de sesión) y un button que nos va a conectar con la siguiente página.
Luego hacemos doble click sobre el botón (página siguiente) de la página principal, en este evento (evento click del botón) creamos la variable de sesión y referenciamos la siguiente página con el siguiente código:
protected void Button3_Click(object sender, EventArgs e)
{
Session.Add("Nombre", this.TextBox1.Text);
Response.Redirect("~/Sitio/Pagina2.aspx");
}
En la página secundaria donde se va a mostrar la variable se agrega un label y se codifica lo siguiente:
protected void Page_Load(object sender, EventArgs e)
{this.Label2.Text = "Bienvenido " + Session["Nombre"].ToString();
}
Una vez realizado esto, se ejecuta y como resultado se obtendrá lo siguiente:
Una vez ingresado el nombre, hacemos click sobre el botón y se obtendrá lo siguiente:
Variables de Aplicación
Siguiendo con el proyecto de “Variable de Sesión”, para poder utilizar Variables de Aplicación debemos añadir al proyectoun elemento del tipo Global.asax, en el cual se va a crear la variable.
Una vez dentro de Global.asax podemos ver las distintas opciones, para manejar por ejemplo información de inicio desesión (Session_Start) y de fin de sesión (Session_End), de inicio y fin de la aplicación. Nosotros vamos a crear una variable de aplicación llamada “Contador” inicializada en cero dentro de inicio de la aplicación (Aplication_Start), que se encarga de contar la cantidad de visitantes de la página. Para ello vamos a ingresar el siguiente código:
protected void Application_Start(object sender, EventArgs e)
{Application.Add("Contador",0);
}
Una vez creada la variable en el Global.asax, vamos a ir a la página principal y en la carga de la página (Load) ingresamos el siguiente código:
protected void Page_Load(object sender, EventArgs e)
{Application.Lock();
Application["Contador"] = (int)Application["Contador"] + 1;
Application.UnLock();
Response.Write ("Usted es el visitante: " + Application["Contador"].ToString());
}
La segunda línea de código es la que se encarga de incrementar el contador cada vez que se carga la página y la última línea de código se encarga de mostrar el valor del contador. Mientras que la primera y la tercera es para evitar problemas de concurrencia en la página debido a que la variable es pública.
Hay que tener en cuenta que esta variable va a volver a cero cada vez que se reinicie el Internet Information Server, para que el contador no vuelva a cero se puede asociar la variable a un archivo que persista el valor.Una vez listo esto ejecutamos el proyecto y obtendremos:
Y cada vez que refresquemos la página (F5), o salgamos y volvamos a entrar el contador aumentará, en este caso la página se refresco 3 veces.
Cookies
Para utilizar las cookies añadimos en la página principal un label y text box, y añadimos al botón (página siguiente) ya existente el código para crear la cookie. Por lo que quedaría de la siguiente manera:protected void Button3_Click(object sender, EventArgs e)
{Session.Add("Nombre", this.TextBox1.Text);
Response.Cookies.Add(new HttpCookie ("Equipo",TextBox2.Text));
Response.Redirect("~/Sitio/Pagina2.aspx");
}Luego en la página secundaria a la que hace referencia el botón, se le agrega un label en el cual se va a mostrar la cookie, para ello se agrega el siguiente código cuando se carga la página (load):
protected void Page_Load(object sender, EventArgs e)
{
this.Label2.Text = "Bienvenido " + Session["Nombre"].ToString();
lblequipo.Text = "Su equipo es: " + Request.Cookies["Equipo"].Value.ToString();
}
Una vez realizado estos pasos, al ejecutarse la aplicación se obtendrá lo siguiente:
Una vez ingresado el nombre y el eauipo, hacemos click sobre el botón y se obtendrá lo siguiente:
No hay comentarios:
Publicar un comentario