none
Orden columna datagridview RRS feed

  • Pregunta

  • Buenas tardes

    tengo una aplicación Visual net donde tengo un datagridview que lee de una tabla sql

    quiero que cuando pulse sobre el nombre de una columna concreta lo ordene por otra (segun tenga que ser ascendente o descendente)

    el tema es que la columna codigo es alfanumerica y la tengo que enseñar asi pero el orden debe ser númerico por eso he creado otra columna no visible con el datos convertido a numerico y es por esa columna por la que quiero ordenar ascendente o descendente segun corresponda

    Private Sub grd_Sorted(ByVal sender As Object, ByVal e As System.EventArgs) Handles grd.Sorted
            CampoOrden = grd.SortedColumn.Name
            If CampoOrden = "codigo" Then
                CampoOrden = "CodigoOrd"
                dwTabla.Sort = CampoOrden
                grd.SortedColumn.Name = "CodigoOrd"
            Else : Orden = grd.SortOrder
    
            End If
           
    gracias


    Aran

    miércoles, 13 de mayo de 2020 15:35

Todas las respuestas

  • Hola:
    Prueba esto

        Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
            Dim direction As ListSortDirection = ListSortDirection.Descending
            Dim ColumnXX As DataGridViewColumn = DataGridView1.Columns("TU_COLUMNA_PARA_ORDENAR")
            If e.ColumnIndex = 0 Then   'Poner el indice de la comuna donde se hace click
                dgrDatos.Sort(ColumnXX, direction)
            End If
        End Sub

    Un saludo desde Bilbo
    Carlos
    miércoles, 13 de mayo de 2020 17:33
  • Hola,

    eso solo permite orden descendente?

    me da error dice que el tipo no esta definido  no se de que clase es listSortDirection

    Dim direction As ListSortDirection = ListSortDirection.Descending

     gracias, desde Donosti




    • Editado aticnet miércoles, 13 de mayo de 2020 17:56 faltaba información
    miércoles, 13 de mayo de 2020 17:53
  • Hola:
    Tienes que añadir la siguiente linea

    Imports System.ComponentModel

    Un saludo desde Bilbo
    Carlos

    miércoles, 13 de mayo de 2020 17:58
  • hola,

    si gracias

    pero solo ordena descendiente

    ¿como le indico el orden si es ascendente o descente? tiene que ser según este no?


    Aran

    miércoles, 13 de mayo de 2020 18:06
  • Hola:
    pero solo ordena descendiente
    ¿como le indico el orden si es ascendente o descente? tiene que ser según este no?  <
    En la instruccion

     Dim direction As ListSortDirection = ListSortDirection.Descending
    El orden es descendente

    Si quieres ascendente, cambia la linea por esta

     Dim direction As ListSortDirection = ListSortDirection.Ascending

    Un saludo desde Bilbo
    Carlos

    miércoles, 13 de mayo de 2020 18:57
  • si pero yo quiero saber en que orden esta para establecer el contrario y no se como lo se

    creo que igual guardandome la variable sort

    gracias


    Aran

    miércoles, 13 de mayo de 2020 20:42
  • Hola:
    Por ejemplo pon un CheckBox llamado chkAscendente.
    Luego preguntas
    Dim direction As ListSortDirection
    If chkAscendente.Checked=True Then
        direction = ListSortDirection.Ascending
    Else
        direction = ListSortDirection.Descending
    End If
    Un saludo desde Bilbo
    Carlos
    miércoles, 13 de mayo de 2020 21:42
  • Hola aticnet

    Crea una variable booleana para saberlo! Puedes setear el orden ascendente como defecto y colocar el boolean ascendentSortFlag = True

    Cuando el usuario lo cambie puedes usar un if y asi saber si debes ordenarlo ascendente o descendente!


    Gracias por usar los foros de MSDN.


    Luis Diego Mora

     

    --------------------------------------------------------------------------

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 13 de mayo de 2020 21:44
    Moderador
  • Hola aticnet

     

    ¿Alguna actualización sobre la consulta realizada? ¿Alguna de las respuestas proporcionadas te ayudó?

     

    Espero tu respuesta.

     

    Gracias por usar los foros de MSDN.

     

     

    Luis Diego Mora

     

    --------------------------------------------------------------------------

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    lunes, 18 de mayo de 2020 21:09
    Moderador