none
Ayuda con GridView RRS feed

  • Pregunta

  • Una pregunta

    tengo un gridview para seleccionar productos. y quiero evitar que el mismo producto se repita al ser agregado ejemplo

    producto            cantidad

    manzana                1

    manzana                1

    manzana                1

    banano                  1

    Me gustaria que si selecciona 2 veces el mismo articulo este sea agregado a la cantidad

    oseaaplicando el caso anterior deberia quedar asi

    Producto      cantidad

    manzana          3

    banano            1

    o alguna manera de mostrarle que su producto ya existia

    gracias.

    miércoles, 4 de marzo de 2015 15:24

Respuestas

  • Eso es algo que debería implementar en la colección que es el DataSource del GridView.  Yo diría que debería ser un tipo Dictionary o un derivado de KeyedCollection, donde el Key sería el producto.  El tipo del key necesitaría implementar IEquatable<> para poder encontrar el valor.


    Jose R. MCP
    Code Samples

    miércoles, 4 de marzo de 2015 16:00
    Moderador

Todas las respuestas

  • Eso es algo que debería implementar en la colección que es el DataSource del GridView.  Yo diría que debería ser un tipo Dictionary o un derivado de KeyedCollection, donde el Key sería el producto.  El tipo del key necesitaría implementar IEquatable<> para poder encontrar el valor.


    Jose R. MCP
    Code Samples

    miércoles, 4 de marzo de 2015 16:00
    Moderador
  • yo diria que si lo estas llenando desde una BD, crees la consulta tal y como la quieres para eso deberias usar funciones de agregado, algo asi como select Producto, sum(catidad) from tabla group by producto,

    ahora mas bien creo que si lo estas pasando de un grid para otro, derias recorrer el segundo grid a ver si el producto que estas agregando ya existe en ese grid sino existe agregalo y si existe cantidad = catindad + nuevaCantadidad

    Saludos espero te funcione

    Si te sirvio marca  como respuesta

    miércoles, 4 de marzo de 2015 16:28
  • hola

    de donde tomas los datos para cargar el gridview ?

    al usuario le listas el mismo productos en varias lineas ? si es asi como realiza la seleccion multiple

    si los datos los tomas de una db podrias usar el GROUP BY

    SELECT Producto, SUM(cantidad) As cantidad FROM Tabla GROUP BY Producto


    de esta forma sumara los productos que se repitan

    salidos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de marzo de 2015 16:30
  • Todos los datos los traigo de la base de datos excepto la cantidad ya que esa es a gusto de cada persona.

    El lo que hace es seleccionar los productos que quiere comprar solo que no es favorable que si habia puesto 3 manzanas de primero las repita en la mitad o fnalizando la lista

    miércoles, 4 de marzo de 2015 16:37
  • pero la lista de productos que selecciona el usuario donde la conservas ? es en un objeto session

    porque si hay algun boton para agregar un producto a una lista en esa operacion podrias validar si ya existe el producto y no agregar un item nuevo sino sumar al existente

    de esta forma evitas duplicados cuando el usuario agrega un producto

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de marzo de 2015 16:44
  • si el listado esta en una sesion y como le aplico la validacion para evitar los dupi¡licados 

    gracias

    miércoles, 4 de marzo de 2015 16:48
  • ¿Valoró usted mi respuesta?  Yo diría que es lo que necesita justamente.

    Jose R. MCP
    Code Samples

    miércoles, 4 de marzo de 2015 16:52
    Moderador
  • >>si el listado esta en una sesion y como le aplico la validacion para evitar los duplicados

    depende de como hayas implementado el evento que agrega un producto nuevo a la lista, pero basicamente

    - deberias recuperar los items de la session

    - buscas con un foreach o mejor si te animas con linq, si hay un id de producto existente

    - si lo hay sumas a esa entidad la cantidad que se ingresa

    - sino existe generas el nuevo item

    no se que tipo de lista usas imagino es algo como ser List<class> en donde class ee una clase que tu defines

    saludos



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de marzo de 2015 16:54