none
Ayuda con Gridview, eliminar una fila mediante C# RRS feed

  • Pregunta

  • Junto con saludarlos necesito ayuda con respecto a este tema

    Tengo la siguiente gridview

    La cual se guarda en un Session

    Lo que necesito cuando pinche eliminar se elimine el registro

            protected void GrListado_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
    
                if (Session["datos"] != null)
                {
                    GridViewRow row = GrListado.Rows[e.RowIndex];
    
                    List<GrProducto> productos = Session["datos"] as List<GrProducto>;
    
                    GrProducto item = new GrProducto();
    
                    item.NomProd = Convert.ToString(row.Cells[1].Text);
                    item.ValorUni = Convert.ToString(row.Cells[2].Text);
                    item.CantAlumn = Convert.ToString(row.Cells[3].Text);
                    item.Descripcion = Convert.ToString(row.Cells[4].Text);
                    item.Hora = Convert.ToString(row.Cells[5].Text);
                    item.IdProducto = Convert.ToString(row.Cells[6].Text);
                    productos.Remove(item);
    
                    Session["Datos"] = productos;
                    GrListado.DataSource = productos;
                    GrListado.DataBind();
                }
    }

    Lo genero de la siguiente manera pero no me elimina el item seleccionado?

    Saludos

    LatinWater!



    • Editado LatinWater martes, 10 de mayo de 2016 18:18
    martes, 10 de mayo de 2016 14:56

Respuestas

  • podrias usar linq para buscar el item en la coleccion que tienes en la session

    public void GridView1_Delete(...){
    
    	List<GrProducto> productos = Session["datos"] as List<GrProducto>;
    
    	var item = productos.FirstOrDefault(x=> x.NomProd == ...); //aqui tomas la seleccion
    	
    	if(item != null)
    		productos.Remove(item);
    
    	Session["Datos"] = productos;
    	GrListado.DataSource = productos;
    	GrListado.DataBind();
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta LatinWater miércoles, 11 de mayo de 2016 12:38
    miércoles, 11 de mayo de 2016 5:21

Todas las respuestas

  • podrias usar linq para buscar el item en la coleccion que tienes en la session

    public void GridView1_Delete(...){
    
    	List<GrProducto> productos = Session["datos"] as List<GrProducto>;
    
    	var item = productos.FirstOrDefault(x=> x.NomProd == ...); //aqui tomas la seleccion
    	
    	if(item != null)
    		productos.Remove(item);
    
    	Session["Datos"] = productos;
    	GrListado.DataSource = productos;
    	GrListado.DataBind();
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta LatinWater miércoles, 11 de mayo de 2016 12:38
    miércoles, 11 de mayo de 2016 5:21
  • Gracias Leandro por la ayuda brindada
    miércoles, 11 de mayo de 2016 12:38