Estimados, estoy realizando un ejercicio con ASP.net y c#, tengo un formulario con 2 datos, al ingresarlos y listar, los muesra sin problemas, pero al presionar el botón volver del listado, vuelvo a la pagina de ingreso, vuelvo a presionar listar y el grid esta en blanco, es decir no me guarda los datos una vez que salgo de la página, alguien sabe que puede ser ?
Aqui va lo que tengo:
Pagina inrgreso.aspx.cs:
public partial class Ingreso : System.Web.UI.Page
{
private List<Estudiante> lstEstudiante;
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
lstEstudiante = (List<Estudiante>)ViewState["Listado"];
if (lstEstudiante == null)
{
lstEstudiante = new List<Estudiante>();
}
}
}
protected void btnIngresar_Click(object sender, EventArgs e)
{
try
{
Estudiante nuevoEstudiante = new Estudiante();
nuevoEstudiante._Nombre = txtNombre.Text;
nuevoEstudiante.Edad = int.Parse(txtEdad.Text);
lstEstudiante.Add(nuevoEstudiante);
ViewState["Listado"] = lstEstudiante;
txtNombre.Text = string.Empty;
txtEdad.Text = string.Empty;
}
catch(Exception ex)
{
Response.Write("<script>alert('"+ex.Message+"');</script>");
}
}
protected void btnListar_Click(object sender, EventArgs e)
{
Session["Listado"] = lstEstudiante;
Response.Redirect("Listado.aspx");
}
}
Código Listado:
public partial class Listado : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
grdListado.DataSource = Session["Listado"];
grdListado.DataBind();
Listado ls = new Listado();
}
protected void btnListadoVolver_Click(object sender, EventArgs e)
{
Response.Redirect("Ingreso.aspx");
}
}
Quizás yo no haya entendido bien lo que planteas, pero si estás en un controlador y mandas algo a la vista, estás pasando unos datos, por eso el grid está lleno.
Una vez pulsas en cualquier botón que te lleve a otro lado, si no mandas los datos del grid, se pierden.
Es como trabaja el cliente-servidor, mandas petición al servidor, el servidor te responde, pero entre medio tienes que mandarle datos para que se recojan en un sitio o en otro.
Lee más sobre este tema si tienes alguna duda, si he entendido mal el problema, házmelo saber para que revise el código mejor.
Saludos!!