none
Como se usa el AllowSorting RRS feed

  • Pregunta

  • Hola de nuevo, revisando un libro de visual.net veo que el DataGrid tiene una propiedad llamada "AllowSorting" (propiedad de instancia pública) y cuya descripción pone lo siguiente: 

    Especifica si una columna se puede ordenar haciendo clic sobre su cabecera.

    pero no me indica ningún ejemplo de como se utiliza. ¿Alguien sabe como puedo utilizar esta propiedad?

    un saludo.

    • Cambiado Enrique M. Montejo jueves, 13 de noviembre de 2014 15:26 Pregunta relacionada con controles de Windows Forms.
    jueves, 25 de julio de 2013 11:50

Todas las respuestas

  • La propiedad AllowSorting del DataGridView indica si se permite ordenadorlo al pulsar las cabeceras de las columnas. SI lo pones a True, al pulsar en una de las cabeceras ordenará los registros por ese dato en orden ascendente o descendente si vuelves a pulsar.

    Saludos, Javier J

    jueves, 25 de julio de 2013 12:42
  • Hola Javier. he puesto este código para asignar la propiedad al DataGrid pero me dice lo siguiente:

    Me.dgvDatos.AllowSorting = True

    'AllowSorting' no es un miembro de "System.Windows.Forms.DataGridView". 


    • Editado ribe61 jueves, 25 de julio de 2013 14:17 rectificar
    jueves, 25 de julio de 2013 14:16
  • Usa la propiedad SortMode de las columnas del DataGrid

    Si por ejemplo quieres que no se puedan ordenar:

    ForEach dgvCol As DataGridViewColumn In dgv.Columns
      dgvCol.SortMode = DataGridViewColumnSortMode.NotSortable
    Next

    Esta propiedad puede tener los valores

    Automatic (es el valor predeterminado). Se ordena el grid por la columna al hacer clic en la cabecera.
    NotSortable. No se permite ordenar por esa columna.
    Programmatic. Puede ordenar la columna por programación.


    Saludos, Javier J

    viernes, 26 de julio de 2013 6:34
  • Hola Javier, he puesto el código que me indicas, pero al hacer clic sobre la cabecera no hace nada.

    Dim cnsCliente = From rg In BD.tblClientes _
      Select rg.idCliente, rg.CliNombre, rg.CliDni, 
             rg.CliTelefono, rg.CliIdPoblacion, rg.idTipoCliente _
       Order By CliNombre Ascending
      
    Me.dgvDatos.DataSource = cnsCliente.ToList
    For Each dgvCol As DataGridViewColumn In dgvDatos.Columns
       dgvCol.SortMode = DataGridViewColumnSortMode.Automatic
    Next

    he de decir que en tiempo de diseño las columnas ya están asignadas con la propiedad 'Automatic'

    Un saludo



    • Editado ribe61 viernes, 26 de julio de 2013 15:34 ampliar respuesta
    viernes, 26 de julio de 2013 15:09