Berikut adalah cara untuk menyortir data yang ada di dalam column vb.net
pertama tambahkan module
lalu masukan codingan berikut :
Public Class ListviewComparer
Implements IComparer
Private mColumnNumber As Integer
Private mSortOrder As SortOrder
Public Sub New(ByVal ColumnNumber As Integer, ByVal SortOrder As SortOrder)
mColumnNumber = ColumnNumber
mSortOrder = SortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
Dim itemX As ListViewItem = DirectCast(x, ListViewItem)
Dim itemY As ListViewItem = DirectCast(y, ListViewItem)
Dim stringX As String
If itemX.SubItems.Count <= mColumnNumber Then
stringX = ""
Else
stringX = itemX.SubItems(mColumnNumber).Text
End If
Dim stringY As String
If itemY.SubItems.Count <= mColumnNumber Then
stringY = ""
Else
stringY = itemY.SubItems(mColumnNumber).Text
End If
If mSortOrder = SortOrder.Ascending Then
If IsNumeric(stringX) And IsNumeric(stringY) Then
Return Val(stringX).CompareTo(Val(stringY))
ElseIf IsDate(stringX) And IsDate(stringY) Then
Return DateTime.Parse(stringX).CompareTo(DateTime.Parse(stringY))
Else
Return String.Compare(stringX, stringY)
End If
Else
If IsNumeric(stringX) And IsNumeric(stringY) Then
Return Val(stringY).CompareTo(Val(stringX))
ElseIf IsDate(stringX) And IsDate(stringY) Then
Return DateTime.Parse(stringY).CompareTo(DateTime.Parse(stringX))
Else
Return String.Compare(stringY, stringX)
End If
End If
End Function
End Class
setelah itu tambahan codingan berikut di dalam form yang ada listview nya
Private mSortingColumn As ColumnHeader
Setelah itu taro codingan di lvcolumn click Contoh nya berikut
Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick
'mendekralariskan variable NewSortingColumn
Dim NewSortingColumn As ColumnHeader = ListView1.Columns(e.Column)
'mendeklarasikan variable SortOrder
Dim SortOrder As SortOrder
'jika variable mSortingColumn kosong
If mSortingColumn Is Nothing Then
'mengisi variable sortorder sebagai ascending
SortOrder = Windows.Forms.SortOrder.Ascending
Else
'mengecek apakah column yang diklik itu sama dengan column yang sebelumnya
If NewSortingColumn.Equals(mSortingColumn) Then
'jika column text dimulai dengan tanda ^ maka
If mSortingColumn.Text.StartsWith("^ ") Then
'mengisi variable sortorder sebagai descending
SortOrder = Windows.Forms.SortOrder.Descending
Else
'mengisi variable sortorder sebagai ascending
SortOrder = Windows.Forms.SortOrder.Ascending
End If
Else
'mengisi variable SortOrder sebagai ascending
SortOrder = Windows.Forms.SortOrder.Ascending
End If
mSortingColumn.Text = mSortingColumn.Text.Substring(2)
End If
mSortingColumn = NewSortingColumn
'jika SortOrder = Ascending
If SortOrder = Windows.Forms.SortOrder.Ascending Then
mSortingColumn.Text = "^ " & mSortingColumn.Text
Else
mSortingColumn.Text = "? " & mSortingColumn.Text
End If
ListView1.ListViewItemSorter = New ListviewComparer(e.Column, SortOrder)
ListView1.Sort()
End Sub
Selesai....
tinggal klik header column nya maka data akan ke sortir
Silahkan download project nya disini :
http://www.4shared.com/rar/Rphj3QPIba/sortirlistview.html
Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com
atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :