Assalamu'alaikum ......
Waduh masih ngantuk nih sebenernya, tapi dari pada bengong pagi-pagi mending duduk sambil ngopi terus internetan deh. Tapi ketika buka browser bingung mau ngapain lagi. Hahaha payah deh, akhirnya saya putusin buat share aja tentang pengalaman saya bikin tabel yang bisa di urutin isinya ketika saya klik headernya, terinspirasi dari tabel kolom milik Microsoft Excel.
Setelah lama bereksperimen ketemu juga koding yang cocok, berikut tampilan ketika saya klik header kolom di tabel program buatan saya :
Kita juga harus memberikan koding berikut ke dalam form aplikasinya, dan jangan lupa siapkan ListView-nya juga
Private Sub lstBarang_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lstBarang.ColumnClick
Dim sortColumn As Integer = -1
With lstBarang
If e.Column <> sortColumn Then
sortColumn = e.Column
.Sorting = SortOrder.Ascending
Else
If .Sorting = SortOrder.Ascending Then
.Sorting = SortOrder.Descending
Else
.Sorting = SortOrder.Ascending
End If
End If
.ListViewItemSorter = New ListViewItemComparer(e.Column, lstBarang.Sorting)
End With
End Sub
Jangan lupa disini event atau proses pengurutan nya saya tentukan ketika di klik bukan double klik, tapi itu terserah ke pembuat program lagi.
Ok, mungkin itu dulu yang bisa saya share
Wassalamu'alaikum .....
Waduh masih ngantuk nih sebenernya, tapi dari pada bengong pagi-pagi mending duduk sambil ngopi terus internetan deh. Tapi ketika buka browser bingung mau ngapain lagi. Hahaha payah deh, akhirnya saya putusin buat share aja tentang pengalaman saya bikin tabel yang bisa di urutin isinya ketika saya klik headernya, terinspirasi dari tabel kolom milik Microsoft Excel.
Setelah lama bereksperimen ketemu juga koding yang cocok, berikut tampilan ketika saya klik header kolom di tabel program buatan saya :
Tampilan sebelum dirutkan |
Bisa kita lihat tampilan diatas adalah sebelum dirutkan datanya, pnegurutan bisa ditentukan dari nomor, ID, Kategori maupun Nama Barang tergantung header mana yang di klik dalam contoh diatas pengurutan berdasar nomor. Berikut tampilan setelah di urutkan atau setelah saya klik header nomor :
Tampilan sesudah dirutkan |
Dalam kasus diatas saya aplikasikan ke dalam ListView bukan DataGridView karena menurut saya tampilannya yang lebih dinamis dan fleksibel. Tapi kalau mau di aplikasin pada selain ListView bisa saja, dengan beberapa editan. Berikut koding yang saya gunakan, saya buat dengan VB Class
Class ListViewItemComparer
Implements IComparer
Private col As Integer
Private order As SortOrder
Public Sub New()
col = 0
order = SortOrder.Ascending
End Sub
Public Sub New(ByVal column As Integer, ByVal order As SortOrder)
col = column
Me.order = order
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim returnVal As Integer
Try
Dim firstDate As System.DateTime = DateTime.Parse(CType(x, _
ListViewItem).SubItems(col).Text)
Dim secondDate As System.DateTime = DateTime.Parse(CType(y, _
ListViewItem).SubItems(col).Text)
returnVal = DateTime.Compare(firstDate, secondDate)
Catch
returnVal = [String].Compare(CType(x, _
ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
End Try
If order = SortOrder.Descending Then
returnVal *= -1
End If
Return returnVal
End Function
End Class
Private Sub lstBarang_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lstBarang.ColumnClick
Dim sortColumn As Integer = -1
With lstBarang
If e.Column <> sortColumn Then
sortColumn = e.Column
.Sorting = SortOrder.Ascending
Else
If .Sorting = SortOrder.Ascending Then
.Sorting = SortOrder.Descending
Else
.Sorting = SortOrder.Ascending
End If
End If
.ListViewItemSorter = New ListViewItemComparer(e.Column, lstBarang.Sorting)
End With
End Sub
Jangan lupa disini event atau proses pengurutan nya saya tentukan ketika di klik bukan double klik, tapi itu terserah ke pembuat program lagi.
Ok, mungkin itu dulu yang bisa saya share
Wassalamu'alaikum .....
Jangan sungkan untuk komentar disini, temen-temen bisa share trik lain jika ada
ReplyDeleteGod Job brow.. Its Very2 Helped
ReplyDeleteU welcome brow,
Delete