none
Filtrar datagridview 2 veces

    Pregunta

  • Hola a todos!

    Necesito una ayudita sobre como poder filtrar un datagridview 2 veces. Primero lo filtro por ciudad con el siguiente código:

    Private Sub filtrar_ciudad()
            Try
                Dim ds As New DataSet
                ds.Tables.Add(dt.Copy)
                Dim dv As New DataView(ds.Tables(0))
    
                dv.RowFilter = "ciudad" & " LIKE '" & cbciudad.Text & "%'"
    
                If dv.Count <> 0 Then
                    datalistado.DataSource = dv
                    inexistente.Visible = False
                    ocultar_columnas()
                Else
                    datalistado.DataSource = Nothing
                    inexistente.Visible = True
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub

    Conservando los datos obtenidos luego de ese filtro, necesito volver a filtrar el datagridview por zonas.

    Podría concatenar el dv.rowfilter anterior y agregarle el parametro que necesito, pero no encuentro como...

    Desde ya agradezco cualquier sugerencia que me puedan hacer.

    Saludos!

    sábado, 11 de marzo de 2017 14:34

Respuestas

  • dynamicuy,

    ¿No vale tener las reglas de filtro en una sola expresión?

    string query = string.Format("ciudad LIKE '{0}%' AND zonas LIKE '{1}%'", cbCiudad.Text, cbZonas.Text);
    dv.RowFilter = query;

    Si buscas el filtro en dos tiempos puedes volver a obtener el origen de los datos:

    DataTable dt = datalistado.DataSource as DataTable;
    
    string query = string.Format("zonas LIKE '{0}%'", cbZonas.Text);
    
    dt.DefaultView.RowFilter = query;


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Alesx de Souza sábado, 11 de marzo de 2017 15:57
    sábado, 11 de marzo de 2017 15:00