Principales respuestas
eliminar filas vacias de un datagridview

Pregunta
-
hola amigos estoy intentando borrar filas vacias de un datagridview con este codigo
Dim X As Integer
For X = 0 To Me.DataGridView2.Rows.Count - 1
If Me.DataGridView2.Rows(X).Cells(1).Value = Nothing Then
Me.DataGridView2.Rows.Remove(Me.DataGridView2.Rows(X))
End If
Nextpero me sale un error dice que:
la nueva fila sin confirmar no se puede aliminar
me podrian ayudar porfavor
Respuestas
-
Prueba a eliminar las filas recorriendo el bucle en orden inverso: desde la última fila hasta la primera:
For n As Integer = DataGridView2.Rows.Count - 1 To 0 Step -1 Dim row As DataGridViewRow = DataGridView2.Rows(n) If (row.Cells(1).Value Is DBNull.Value) Then _ DataGridView2.Rows.Remove(row) Next
Un saludo
- Propuesto como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:39
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 16 de mayo de 2011 17:27
-
Buenas juan11mh.
Tiene pinta que estés intentando eliminar una fila que está en edición.
Prueba a añadir la condición siguiente:
For X = 0 To Me.DataGridView2.Rows.Count - 1 If Me.DataGridView2.Rows(X).Cells(1).Value = Nothing Then If Not(Me.DataGridView2.Rows(X).IsNewRow) Me.DataGridView2.Rows.Remove(Me.DataGridView2.Rows(X)) End If End If Next
Un saludo.
http://www.lopezatienza.es
- Propuesto como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:39
- Votado como útil Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:41
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 16 de mayo de 2011 17:27
Todas las respuestas
-
Prueba a eliminar las filas recorriendo el bucle en orden inverso: desde la última fila hasta la primera:
For n As Integer = DataGridView2.Rows.Count - 1 To 0 Step -1 Dim row As DataGridViewRow = DataGridView2.Rows(n) If (row.Cells(1).Value Is DBNull.Value) Then _ DataGridView2.Rows.Remove(row) Next
Un saludo
- Propuesto como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:39
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 16 de mayo de 2011 17:27
-
Buenas juan11mh.
Tiene pinta que estés intentando eliminar una fila que está en edición.
Prueba a añadir la condición siguiente:
For X = 0 To Me.DataGridView2.Rows.Count - 1 If Me.DataGridView2.Rows(X).Cells(1).Value = Nothing Then If Not(Me.DataGridView2.Rows(X).IsNewRow) Me.DataGridView2.Rows.Remove(Me.DataGridView2.Rows(X)) End If End If Next
Un saludo.
http://www.lopezatienza.es
- Propuesto como respuesta Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:39
- Votado como útil Enrique M. MontejoModerator domingo, 15 de mayo de 2011 8:41
- Marcado como respuesta Eduardo PorteschellerModerator lunes, 16 de mayo de 2011 17:27
-
Segun el error la nueva fila sin confirmar no se puede aliminar parece ser una proctecion del control para mantener la integridad entre el control y el datasource subyacente, segun puedo interpretar no puede eliminar una fila de la grilla sin confirmarcelo al datasource subyacente. como una alternativa puede tratar de ocultar las filas que cumplan la condicion que busca
Angel R. Jimenez G.
Software Development
Santo Domingo
Republica Dominicana -
hola
el tema es que sino entendi mal no puede eliminar items del grid mientra los recorres
http://social.msdn.microsoft.com/Forums/es/vbes/thread/0ab17b6c-da89-48a3-ad79-20464f7d3fef
prueba de aplciar la tecncia que comento en esa otra pregunta similar ala que haces aqui
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -