Redireccionar sin perder datos de una grilla ?

Iniciado por Finishim, 31 Agosto 2016, 05:04 AM

0 Miembros y 1 Visitante están viendo este tema.

Finishim

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:

Código (csharp) [Seleccionar]
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:

Código (csharp) [Seleccionar]
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");
        }
    }


Zeros1001

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!!