MbahAgis

ReSorting Bound DataGridView

Aug 6th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 1.72 KB | None | 0 0
  1.     Dim count As Integer = 1
  2.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  3.         '------------Bound--------------
  4.         Dim DT As New DataTable
  5.         DT.Columns.Add("ID", GetType(String))
  6.         DT.Columns.Add("Name", GetType(String))
  7.  
  8.         For i = 0 To 9
  9.             DT.Rows.Add("F-" & i + 1, Chr(i + 65))
  10.         Next
  11.  
  12.         DGV.DataSource = DT
  13.         '---------------------------------------
  14.  
  15.     End Sub
  16.     Private Sub DGV_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DGV.ColumnHeaderMouseClick
  17.         Dim dt As DataTable
  18.         Dim srtOrder As SortOrder
  19.  
  20.         If count Mod 2 Then
  21.            
  22.             dt = DirectCast(DGV.DataSource, DataTable).AsEnumerable.OrderByDescending(Function(r)
  23.                                                                                           Return If(IsNumeric(r(0)), r(0), CInt(r(0).ToString.Replace("F-", Nothing)))
  24.                                                                                       End Function).CopyToDataTable()
  25.             count = 0
  26.             srtOrder = SortOrder.Descending
  27.         Else
  28.             dt = DirectCast(DGV.DataSource, DataTable).AsEnumerable.OrderBy(Function(r)
  29.                                                                                 Return If(IsNumeric(r(0)), r(0), CInt(r(0).ToString.Replace("F-", Nothing)))
  30.                                                                             End Function).CopyToDataTable()
  31.             count = 1
  32.             srtOrder = SortOrder.Ascending
  33.         End If
  34.         'r(0) = Column ID
  35.  
  36.         DGV.DataSource = dt
  37.         DGV.Columns(0).HeaderCell.SortGlyphDirection = srtOrder
  38.     End Sub
  39.  
  40.  
Advertisement
Add Comment
Please, Sign In to add comment