Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Finishim en 31 Agosto 2016, 05:04 am



Título: Redireccionar sin perder datos de una grilla ?
Publicado por: Finishim en 31 Agosto 2016, 05:04 am
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
  1. public partial class Ingreso : System.Web.UI.Page
  2.    {
  3.  
  4.  
  5.        private List<Estudiante> lstEstudiante;
  6.  
  7.        protected void Page_Load(object sender, EventArgs e)
  8.        {
  9.            if (IsPostBack)
  10.            {
  11.                lstEstudiante = (List<Estudiante>)ViewState["Listado"];
  12.  
  13.                if (lstEstudiante == null)
  14.                {
  15.                    lstEstudiante = new List<Estudiante>();
  16.                }
  17.            }
  18.  
  19.  
  20.        }
  21.  
  22.        protected void btnIngresar_Click(object sender, EventArgs e)
  23.        {
  24.            try
  25.            {
  26.                Estudiante nuevoEstudiante = new Estudiante();
  27.                nuevoEstudiante._Nombre = txtNombre.Text;
  28.                nuevoEstudiante.Edad = int.Parse(txtEdad.Text);
  29.                lstEstudiante.Add(nuevoEstudiante);
  30.  
  31.                ViewState["Listado"] = lstEstudiante;
  32.  
  33.  
  34.                txtNombre.Text = string.Empty;
  35.                txtEdad.Text = string.Empty;
  36.            }
  37.            catch(Exception ex)
  38.            {
  39.                Response.Write("<script>alert('"+ex.Message+"');</script>");
  40.            }
  41.        }
  42.  
  43.  
  44.  
  45.        protected void btnListar_Click(object sender, EventArgs e)
  46.        {
  47.            Session["Listado"] = lstEstudiante;
  48.            Response.Redirect("Listado.aspx");
  49.        }
  50.  
  51.  
  52.  
  53.    }


Código Listado:

Código
  1. public partial class Listado : System.Web.UI.Page
  2.    {
  3.        protected void Page_Load(object sender, EventArgs e)
  4.        {
  5.                grdListado.DataSource = Session["Listado"];
  6.                grdListado.DataBind();
  7.                Listado ls = new Listado();
  8.  
  9.        }
  10.  
  11.        protected void btnListadoVolver_Click(object sender, EventArgs e)
  12.        {
  13.            Response.Redirect("Ingreso.aspx");
  14.        }
  15.    }


Título: Re: Redireccionar sin perder datos de una grilla ?
Publicado por: Zeros1001 en 2 Septiembre 2016, 14:02 pm
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!!