none
como pasar datos de una grilla1 a la grilla2 y viceversa

    Pregunta

  • quisiera pasar datos de la grilla1 que contiene datos desde sql, y la grilla2 que recibira dichos datos, a la vez de la grilla2 pueda regresar esos a la grilla1 , estoy utilizando listas genericas ,y estoy en programacion en capas, espero me puedan ayudar
    miércoles, 7 de septiembre de 2016 14:16

Respuestas

  • Bueno, si lo haces asi, entonces estas efectivamente leyendo los datos de un grid y pasandolos directamente al otro grid. En este caso, estas desperdiciando la funcionalidad que tiene el grid para vincularse directamente a la lista que contiene los datos. En la mayor parte de los casos, ese vinculo es la opcion mas comoda para transferir datos al grid, pero si por alguna razon no te encaja en la arquitectura de tu programa, tambien es valido leer y grabar el grid con un bucle tal como estas haciendo, aunque suele ser mas costoso de programar.
    jueves, 8 de septiembre de 2016 16:20

Todas las respuestas

  • Suponiendo que las dos grillas las tienes enlazadas con databinding a dos listas genéricas, lista1 y lista2, el truco está en que no pasas los datos de una grilla a la otra, sino que los pasas de una lista a la otra. Gracias al databinding, la sensación visual será la de que aparentemente se han pasado de una a la otra grilla.

    Por ejemplo, para mover la fila 7 de la primera lista al final de la segunda:

    lista2.Add(lista1(6))

    lista1.RemoveAt(6)

    miércoles, 7 de septiembre de 2016 18:05
  • gracias por leer mi msj , pero algun ejemplo de como utilizar en databinding ?
    miércoles, 7 de septiembre de 2016 21:12
  • Se supone que ya lo tienes hecho. Es decir, cuando en tu pregunta dices "estoy utilizando listas genericas", ¿por qué lo mencionas? Lo lógico es presumir que lo dices para que sepamos que esas listas las tienes conectadas al Grid mediante databinding (por contraposición a la otra forma habitual de cargar los grids que es conectándolos a un DataTable en lugar de una lista genérica).

    En resumidas cuentas, lo del databinding es simplemente esto, que supongo que es lo que estás haciendo:

    gridView1.DataSource = lista1

    jueves, 8 de septiembre de 2016 6:48
  • alberto,  no se si este bien esto que estoy haciendo

           IdPlanLote = DgvPlanLote(1, DgvPlanLote.CurrentRow.Index).Value
            IdLotes = DgvPlanLote(2, DgvPlanLote.CurrentRow.Index).Value
            cDesLote = DgvPlanLote(3, DgvPlanLote.CurrentRow.Index).Value
            IdSubLotes = DgvPlanLote(5, DgvPlanLote.CurrentRow.Index).Value
            cDesSubLotes = DgvPlanLote(6, DgvPlanLote.CurrentRow.Index).Value
            IdVarF = DgvPlanLote(4, DgvPlanLote.CurrentRow.Index).Value
            VarF = DgvPlanLote(7, DgvPlanLote.CurrentRow.Index).Value
            FechaInicio = DgvPlanLote(8, DgvPlanLote.CurrentRow.Index).Value
            FechaFin = DgvPlanLote(9, DgvPlanLote.CurrentRow.Index).Value


          
            For Each row As DataGridViewRow In DgvPlanLote.SelectedRows

                If DgvCsPlanlote.ColumnCount > 0 Then
                    DgvCsPlanlote.Rows.Add(IdPlanLote, IdLotes, cDesLote, IdSubLotes, cDesSubLotes, IdVarF, VarF, FechaInicio, FechaFin) ', Seleccion
                    DgvPlanLote.Rows.Remove(row)
                End If

            Next

    jueves, 8 de septiembre de 2016 15:51
  • Bueno, si lo haces asi, entonces estas efectivamente leyendo los datos de un grid y pasandolos directamente al otro grid. En este caso, estas desperdiciando la funcionalidad que tiene el grid para vincularse directamente a la lista que contiene los datos. En la mayor parte de los casos, ese vinculo es la opcion mas comoda para transferir datos al grid, pero si por alguna razon no te encaja en la arquitectura de tu programa, tambien es valido leer y grabar el grid con un bucle tal como estas haciendo, aunque suele ser mas costoso de programar.
    jueves, 8 de septiembre de 2016 16:20