Masih pada ingat postingan artikel saya mengenai LINQ ? setelah mencoba akan kemudahan nya pasti akan membuat para pembaca tertarik untuk mendalami fungsi-fungsi LINQ. Masih menggunakan project yang sama topik yang sama (LINQ), saya akan memberikan trik bagaimana membuat Paging GridView dengan menggunakan LINQ.
Mungkin diantara pembaca sudah pernah membuat Paging Grid menggunakan Ado.net classic, seperti memanfaatkan ExecuteScalar dan lain-lain. Tapi bagaimana dengan LINQ apakah bisa ??? Bukan saja bisa, malah lebih mudah. Mari kita mulai project ini.
Note : Sebelum menerapkan aplikasi ini, sebaiknya mendownload artikel dan project sebelum postingan ini (Membuat Aplikasi Menjadi Lebih Mudah Dengan LINQ).
Buka project LatihanLINQ, dan tambahkan 1 form dan tambahkan 4 buah button, 1 label dan 1 DataGrdiView. Ubah properties dan atur letak komponen seperti diatas.
Form :
Name : F_Grid
Text : Paging Grid
StartPosition : CenterScreen
Button 1: Name = btnAwal , Text = <<
Button 2: Name = btnMundur, Text = <
Button 3: Name = btnMaju, Text = >
Button 4: Name = btnAkhir, Text = >>
Label : Name =lblStart, Text = Kosong
DatGridView1 : Name =DgView
Pada Project LatihanLINQ, buka class AccessSupplier.vb
Dan ketikkan sintak berikut didalam class AccessSupplier :
'Menampilkan jumlah baris table
Public Function GetTotalBaris() As Integer
Dim dc As New DataClassesDataContext
Dim hasil = (From sup In dc.GetTable(Of T_Supplier)() _
Select sup).ToList
Return hasil.Count 'menghitung jumlah element pada list
End Function
'menampilkan data dari n baris sebanyak n baris
Public Function GetSupplierRows(ByVal Awal As Integer, _
ByVal akhir As Integer) As List(Of T_Supplier)
Dim dc As New DataClassesDataContext
Dim hasil = (From sup In dc.GetTable(Of T_Supplier)() _
Order By sup.Sup_Code Select sup).Skip(Awal).Take(akhir).ToList
Return hasil
End Function
View Code untuk F_Grid, lalu ketikkan sintaks berikut di bawah Public Class F_Grid
Private AccessSupplier As New AccessData.AccessSupplier
Private NilAwal, NilTotal, NilBagi As Integer
Private NilPage As Integer = 2
Private Sub LabelRecord()
lblStart.Text = "Awal baris : " & (NilAwal + 1).ToString & " dari total : " + NilTotal.ToString
End Sub
Double click pada form F_Grid, dan ketikkan sintaks berikut :
Try
NilAwal = 0 'awal baris
NilTotal = AccessSupplier.GetTotalBaris 'mengambil total baris
DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage) 'menampilkan data pada gridview
LabelRecord() 'menampilkan nilai baris dan total baris
Catch ex As Exception
MsgBox(ex.Message)
End Try
Double click button Maju dan ketik sintaks berikut :
Try
If (NilAwal + NilPage) <= NilTotal Then
NilAwal += NilPage
DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)
LabelRecord()
Else
MsgBox("Data sudah pada halaman terakhir", MsgBoxStyle.Information, "LINQ")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Button Mundur :
Try
If (NilAwal - NilPage) >= 0 Then
NilAwal -= NilPage
DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)
LabelRecord()
Else
MsgBox("Data sudah pada halaman pertama", MsgBoxStyle.Information, "LINQ")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Button Awal
Try
NilAwal = 0
DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)
LabelRecord()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dan button Akhir
Try
NilTotal = AccessSupplier.GetTotalBaris
NilBagi = NilTotal Mod NilPage
NilAwal = NilTotal - IIf(NilBagi <> 0, NilBagi, NilPage)
DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)
LabelRecord()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dan jalankan program, maka gridview menampilkan data per 2 baris sesuai dengan navigator yang kita tekan.
Selamat mencoba
Wassalam
2 comments:
Nah Ini yang aku cari... mantap ! thk ya ..
Nah Ini yang aku cari... mantap ! thk ya ..
Post a Comment