none
no se actualiza lista enlazada en gridview RRS feed

  • Pregunta

  • hola : tengo  codigo con el cual genero una lista que luego bindeo a un gridview

      protected void Page_Load(object sender, EventArgs e)

            {

                if (!IsPostBack)

                {

                    Grvrecaudacion.DataSource = this.GenerarLista();

                    Grvrecaudacion.DataBind();

                }

            }

            public List<Recaudacion> GenerarLista()

            {

                List<Recaudacion> lista = new List<Recaudacion>();

                Recaudacion item1 = new Recaudacion()

                {

                    unidad = "Unidad1",

                    importe = 10,

                    fecha = DateTime.Now,

                    chofer = "Chofer1",

                    turno = "Turno1"

                };

                Recaudacion item2 = new Recaudacion()

                {

                    unidad = "Unidad2",

                    importe = 20,

                    fecha = DateTime.Now,

                    chofer = "Chofer2",

                    turno = "Turno2"

                };

                lista.Add(item1);

                lista.Add(item2);

                Session["listaRec"] = lista;

                return lista;

            }

    lo que estoy tratando de hacer es poner textbox en el formulario y un boton para agregar a partir de lo ingresado en los textbox un nuevo elemento de la lista

    para eso en el codigo del click del boton tengo lo siguiente :

       protected void Button1_Click1(object sender, EventArgs e)

            {

                List<Recaudacion> lstRecaudacion;

             

                    lstRecaudacion = new List<Recaudacion>();

                    if (Session["listaRec"] != null)

                    {

                      lstRecaudacion = (List<Recaudacion>)Session["listaRec"];

                    if (Session["listaRec"] == null)

                    {

                      lstRecaudacion = new List<Recaudacion>();

                    Recaudacion item1 = new Recaudacion()

                    {

                        unidad = this.Txtcod.Text,

                        importe = Convert.ToDouble(this.Txtimp.Text),

                        fecha = DateTime.Now,

                        chofer = this.Txtchofer.Text,

                    };

                    lstRecaudacion.Add(item1);

                    Session["listaRec"] = lstRecaudacion;

                    Grvrecaudacion.DataBind();

                     

                    }

                }

            }

                    el  tema es que al hacer click en el boton de agregar no hace nada . supongo que estoy usando mal las variables  de session .

    gracias

    sábado, 9 de julio de 2016 17:11

Respuestas

  • Hola ciclon25,

    Lo que pasa es que creas una nueva lista, y a esa lista le agregas el nuevo elemento de tipo Recaudacion, además no asignas la lista al DataSource del GridView.

    Prueba haciendo esto :

          protected void Button1_Click(object sender, EventArgs e)
            {
                if (Session["listaRec"] != null)
                {
                    List<Recaudacion> lstRecaudacion = (List<Recaudacion>)Session["listaRec"];
    
                    Recaudacion item1 = new Recaudacion()
                    {
                        unidad = this.Txtcod.Text,
                        importe = Convert.ToDouble(this.Txtimp.Text),
                        fecha = DateTime.Now,
                        turno = "NuevoTurno",
                        chofer = this.Txtchofer.Text,
                    };
    
                    lstRecaudacion.Add(item1);
    
                    //Actualizamos la lista en el session
                    Session["listaRec"] = lstRecaudacion;
    
                    //Agregamos la lista al GridView
                    Grvrecaudacion.DataSource = lstRecaudacion;
                    Grvrecaudacion.DataBind();
                }
            }

    Prueba y nos comentas como te va.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Propuesto como respuesta Laura CeglzModerator lunes, 11 de julio de 2016 17:05
    • Marcado como respuesta ciclon25 lunes, 11 de julio de 2016 22:42
    sábado, 9 de julio de 2016 18:21

Todas las respuestas

  • Hola ciclon25,

    Lo que pasa es que creas una nueva lista, y a esa lista le agregas el nuevo elemento de tipo Recaudacion, además no asignas la lista al DataSource del GridView.

    Prueba haciendo esto :

          protected void Button1_Click(object sender, EventArgs e)
            {
                if (Session["listaRec"] != null)
                {
                    List<Recaudacion> lstRecaudacion = (List<Recaudacion>)Session["listaRec"];
    
                    Recaudacion item1 = new Recaudacion()
                    {
                        unidad = this.Txtcod.Text,
                        importe = Convert.ToDouble(this.Txtimp.Text),
                        fecha = DateTime.Now,
                        turno = "NuevoTurno",
                        chofer = this.Txtchofer.Text,
                    };
    
                    lstRecaudacion.Add(item1);
    
                    //Actualizamos la lista en el session
                    Session["listaRec"] = lstRecaudacion;
    
                    //Agregamos la lista al GridView
                    Grvrecaudacion.DataSource = lstRecaudacion;
                    Grvrecaudacion.DataBind();
                }
            }

    Prueba y nos comentas como te va.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Propuesto como respuesta Laura CeglzModerator lunes, 11 de julio de 2016 17:05
    • Marcado como respuesta ciclon25 lunes, 11 de julio de 2016 22:42
    sábado, 9 de julio de 2016 18:21
  • gracias JC ! lo probe y funciono ok !
    lunes, 11 de julio de 2016 22:42