Foros del Web » Programación para mayores de 30 ;) » .NET »

copiar filas de DataGridView a DatagridView

Estas en el tema de copiar filas de DataGridView a DatagridView en el foro de .NET en Foros del Web. Un caluroso saludo a todos los integrantes de esta comunidad ante todo.. jej Queria ver si me pueden ayudar con un problemita que tengo pasando ...
  #1 (permalink)  
Antiguo 14/05/2008, 08:40
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
copiar filas de DataGridView a DatagridView

Un caluroso saludo a todos los integrantes de esta comunidad ante todo.. jej Queria ver si me pueden ayudar con un problemita que tengo pasando filas de un datagridview a otro datagrid view que esta en otro form.

Cuando le doy doble click a la fila la pasa perfectamente al otro datagrid pero, eso es solo la primera fila que paso... si intento pasar otra lo que hace es que la sustituye por la ultima fila que le doy click.

Queria saber si me pueden ayudar identificar cual es el error del codigo para que a medida que haga click en las celdas del datagridcontado que es donde estan los datos los pase al datagridfactura pero que las coloque una debajo de la otra.

aqui les dejo el codigo que uso.

Gracias por anticipado ^^

Visual Basic 2008

Private Sub gridcontado_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gridcontado.CellContentClick
Dim cuantasSelecciono As Integer = gridcontado.Rows.GetRowCount(DataGridViewElementSt ates.Selected)
Dim aFilasSelec As DataGridViewSelectedRowCollection = gridcontado.SelectedRows
For nContador As Integer = 0 To (gridcontado.Columns.Count - 1)
Facturacion.gridfactura.Columns.Add(DirectCast(gri dcontado.Columns(nContador).Clone(), DataGridViewColumn))
Next
Facturacion.gridfactura.Rows.Add(cuantasSelecciono )
Dim nIndiceFila As Integer = 0
For Each oFila As DataGridViewRow In aFilasSelec
For Each oCelda As DataGridViewCell In oFila.Cells
Facturacion.gridfactura.Rows(nIndiceFila).Cells(oC elda.ColumnIndex).Value = oCelda.Value
Next
nIndiceFila += 1

Next

Facturacion.Show()
End Sub

Última edición por DarkSaider; 14/05/2008 a las 09:36
  #2 (permalink)  
Antiguo 15/05/2008, 06:47
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Re: copiar filas de DataGridView a DatagridView

Alguien ayudeme porfavor
  #3 (permalink)  
Antiguo 20/05/2008, 07:07
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: copiar filas de DataGridView a DatagridView

porfavor es urgente gracias.
  #4 (permalink)  
Antiguo 23/05/2008, 07:08
CiS
 
Fecha de Ingreso: abril-2002
Mensajes: 71
Antigüedad: 22 años, 1 mes
Puntos: 0
Respuesta: copiar filas de DataGridView a DatagridView

Hola!
Mira, yo trabajo en C# e hice algo parecido pero con drag and drop (se arrastran las filas de una grid a la otra), cuando recien arranque con el desarrollo de este código, me paso algo similar y el problema era, en mi caso, que yo ejecutaba unas instrucciones en el evento MouseDown que hacia referencia a las filas seleccionadas, y este evento sucedía antes que la o las filas se "marquen" como seleccionadas... Cambie mi codigo a MouseUp y ahi anduvo todo...
Lo que digo, es que veo que en tu código haces igual referencia a las filas seleccionadas, fijate si no te pasa algo parecido a lo que me ocurria a mi!

Saludos, espero haberte ayudado!
CiS
  #5 (permalink)  
Antiguo 06/06/2008, 10:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: copiar filas de DataGridView a DatagridView

creo que tienes razon en tu razonamiento , pero el problema es que no veo como aplicarlo al codigo crees que puedas ayudarme? osea pasandolo a c# yo lo paso a .net Gracias. ^^
  #6 (permalink)  
Antiguo 06/06/2008, 14:49
 
Fecha de Ingreso: mayo-2008
Mensajes: 28
Antigüedad: 16 años
Puntos: 1
Respuesta: copiar filas de DataGridView a DatagridView

Mira, el tema es un poco complicado pero no imposible, lo que tienes que hacer es: cada vez que quieras agregar una fila nueva, crea un nuevo datatable y agregale las filas que habian en el datatable, y luego agregas la que has seleccionado
osea:
Dim dt As DataTable = DataGridView1.DataSource
Dim data As New DataTable
Dim drc As DataRowCollection
Dim row As DataRow
Dim datatab As DataTable = DataGridView1.DataSource

'aqui agrego las columnas al nuevo datatable:

data.Columns.Add(New DataColumn("elnombre de columna", getType(String)))
data.Columns.Add(New DataColumn("elnombre de columna", getType(String)))
data.Columns.Add(New DataColumn("elnombre de columna", getType(String)))
data.Columns.Add(New DataColumn("elnombre de columna", getType(String)))
data.Columns.Add(New DataColumn("elnombre de columna", getType(String)))


'aqui referencio la coleccion de datos del gridview a la variable drc para 'acceder a los datos

drc = dt.Rows
'recorro todos los campos y los guardo
For i As Integer = 0 To drc.Count - 1
row = data.NewRow
row(0) = drc.Item(i).Item(0)
row(1) = drc.Item(i).Item(1)
row(2) = drc.Item(i).Item(2)
row(3) = drc.Item(i).Item(3)
row(4) = drc.Item(i).Item(4)
row(5) = drc.Item(i).Item(5)
data.Rows.Add(row)
Next
hasta ahi has "clonado" el datatable entonces ahora te queda agregar la fila que se ha seleccionado
row = data.NewRow
row(0) = 'parametros de la otra fila
row(1) = 'parametros de la otra fila
row(2) = 'parametros de la otra fila
row(3) = 'parametros de la otra fila
row(4) = 'parametros de la otra fila
row(5) = 'parametros de la otra fila
data.Rows.Add(row)
DataGridView1.DataSource = data

y hasta ahi eso sería todo, si no te quedo claro algo, pues comentamelo y trataré de darte una mano
  #7 (permalink)  
Antiguo 12/07/2008, 06:50
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: copiar filas de DataGridView a DatagridView

netSlayer , a que te refieres con parametros de la otra fila, gracias ^^
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:33.