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

Problema al recorrer filas seleccionadas en un datagridview

Estas en el tema de Problema al recorrer filas seleccionadas en un datagridview en el foro de .NET en Foros del Web. Hola a todos. Una pregunta. Cómo podría recorrer las filas seleccionadas de un datagridview ?, necesito saber qué filas están seleccionadas y borrarlas. He mirado ...
  #1 (permalink)  
Antiguo 05/01/2012, 04:26
 
Fecha de Ingreso: abril-2010
Mensajes: 50
Antigüedad: 14 años
Puntos: 2
Problema al recorrer filas seleccionadas en un datagridview

Hola a todos. Una pregunta. Cómo podría recorrer las filas seleccionadas de un datagridview?, necesito saber qué filas están seleccionadas y borrarlas. He mirado este post http://www.forosdelweb.com/f29/elimi...idview-698769/ y no me ha valido.


If MsgBox("¿Confirme la eliminacion de las líneas?", vbYesNo, "Aviso") = vbYes Then

For Row As Integer = Me.DGVPeritacionesARefacturar.SelectedRows.Count - 2 To 0 Step -1
If Convert.ToBoolean(Me.DGVPeritacionesARefacturar.Se lectedRows(Row).Cells(0).Value) Then
matricula = Me.DGVPeritacionesARefacturar.SelectedRows(Row).Ce lls(0).Value
order = Me.DGVPeritacionesARefacturar.SelectedRows(Row).Ce lls(2).Value
'ejecución de la transacción
End If
Next
End If
No me permite convertir string a boolean aunque lo castee. Alguna idea? Muchas gracias de antemano.

Última edición por delgaillo; 05/01/2012 a las 05:27
  #2 (permalink)  
Antiguo 05/01/2012, 09:53
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Problema al recorrer filas seleccionadas en un datagridview

Hola que tal, no recuerdo si ya te habia contestado esta duda a ti o alguen mas , pero esta es la solucion que yo uso en C#:

Código C#:
Ver original
  1. for (int i = 0; i <= Grid.RowCount - 1; i++)
  2. {
  3.    for (int j = 0; j < Grid.ColumnCount; j++)
  4.    {
  5.       if (!string.IsNullOrEmpty((String)Grid[j, i].Value))
  6.       {
  7.           /// Toma Valor
  8.       }
  9.    }
  10. }
  #3 (permalink)  
Antiguo 09/01/2012, 02:09
 
Fecha de Ingreso: abril-2010
Mensajes: 50
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema al recorrer filas seleccionadas en un datagridview

Pero según entiendo, el código que me has compartido sirve para recorrer las filas del gridview, pero no las filas seleccionadas del datagridview, que es lo que yo querría.

Basicamente el problema que tengo es que tengo que poder eliminar varias líneas seleccionadas de un datagridview. Eliminar las líneas que seleccione el usuario, y claro a la hora de recorrer las filas y asignar las que están seleccionadas tengo el problema.
  #4 (permalink)  
Antiguo 09/01/2012, 22:15
Avatar de rockbass2560  
Fecha de Ingreso: mayo-2011
Mensajes: 31
Antigüedad: 13 años
Puntos: 1
Respuesta: Problema al recorrer filas seleccionadas en un datagridview

El gridview tiene una propiedad SelectedRows que te devuelve una colección de los row seleccionados...

Se me ocurre algo como esto.

Pero a veces cuando lo uso con grid enlazados, tengo que desenlazarlos primero

Código PHP:
foreach (DataGridViewRow row in dataGridView1.SelectedRows)            
{
    
dataGridView1.Rows.Remove(row);

  #5 (permalink)  
Antiguo 10/01/2012, 04:24
 
Fecha de Ingreso: abril-2010
Mensajes: 50
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema al recorrer filas seleccionadas en un datagridview

Finalmente no he necesitado que se borren todas las líneas, he decidido que el usuario vaya borrando una a una. Mi solución ha sido esta utilizando el evento UserDeletingRow:

Código:
    Private Sub DataGridView3_UserDeletingRow(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowCancelEventArgs) Handles DataGridView3.UserDeletingRow
        Try
             Dim matricula As String = e.Row.Cells("Matricula").Value.ToString
            'preguntamos si realmente se desea borrar, ya que el usuario puede haber oprimido la tecla SUPR por equivocación
            Dim respuesta As Integer

            respuesta = MessageBox.Show("Deseas borrar la línea para la matrícula " & matricula, "Borrar Línea", _
            MessageBoxButtons.YesNo, _
            MessageBoxIcon.Question, _
            MessageBoxDefaultButton.Button2)
            If respuesta = Windows.Forms.DialogResult.Yes Then
                'For Each row As DataGridViewRow In DataGridView3.SelectedRows
                '    DataGridView1.Rows.Remove(row)
                'Next
                DataGridView1.Rows.Remove(e.Row)
'si se desea borrar de base de datos esa matrícula, borrarla y recargar el 'gridview para ver los cambios
            Else
                e.Cancel = True
            End If
        Catch ex As Exception

        End Try

    End Sub

Muchas gracias por las respuestas rockbass2560 y drako_darpan me han aclarado ideas. Espero que a alguien más le sirva este código. Un saludo.

Etiquetas: datagridview, filas, vb
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




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