comp • gb.qt4 • gridview • sorted

GridView.Sorted (gb.qt4)

Property Sorted As Boolean

Since 3.1

Return or set if clicking on a column header toggles the sort indicator.

Sorting the data is not done automatically. It must be done by user code.

Following is an example of how sorting might be accomplished within the GridView Sort event.


Public Sub GridView1_Sort()

  Dim Values, ValueSorted As New String[]
  Dim Nx, iNx As Integer

  ' Load sort column into string array
  For Nx = 0 To GridView1.Rows.Max
    Values.Add(GridView1[Nx, GridView1.Columns.Sort].Text)

  ' Copy values to new array and sort it based on status of sort indicator
  ValueSorted = Values.Copy()
  ValueSorted.Sort(IIf(GridView1.Columns.Ascending, gb.Ascent, gb.Descent))

  ' Iterate through table swapping appropriate values
  For Nx = 0 To ValueSorted.Max
    For iNx = 0 To GridView1.Columns.Max
      Swap GridView1[Nx, iNx].Text, GridView1[Values.Find(ValueSorted[Nx], 0, Nx), iNx].Text

    ' Pick up new order to preserve proper handling of indexing and duplicate values
    For iNx = 0 To GridView1.Rows.Max
      Values.Add(GridView1[iNx, GridView1.Columns.Sort].Text)




The above can also be applied to a TableView.