Friday, 12 September 2014

Cara Sortir Data Pada Listview VB.NET

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
 



Perhatian: Yuk Baca Artikel bagus di Nurul Musthofa

Artikel Terkait

No comments:

Post a Comment

 

Network

Pesan

Semoga situs ini bermanfaat