分頁顯示記錄的主要思想就是先將所有的數據存到dataTable中,提供思想,靈活編寫靈活調用
示例,分頁顯示類
Public Class clsPage
'每頁記錄數
Private _RowsPerPage As Integer = 20
'總頁數
Private _TotalPage As Integer = 1
'當前頁數
Private _curPage As Integer = 1
'要分頁的DataGridView
Private _DataGridView As Windows.Forms.DataGridView
'保存的datatable
Private _DataTable As System.Data.DataTable
'獲取與設置每頁記錄數
Public Property RowsPerPage() As Integer
Get
Return _RowsPerPage
End Get
Set(ByVal value As Integer)
_RowsPerPage = value
End Set
End Property
'獲取總頁數
Public Property TotalPage() As Integer
Get
Return _TotalPage
End Get
Set(ByVal value As Integer)
_TotalPage = value
End Set
End Property
'獲取與設置當前頁數
Public Property curPage() As Integer
Get
Return _curPage
End Get
Set(ByVal value As Integer)
_curPage = value
End Set
End Property
'設置需要分頁的GetDataGridView
Public WriteOnly Property SetDataGridView()
Set(ByVal value As Object)
_DataGridView = value
End Set
End Property
'獲取需要讀的表格
Public WriteOnly Property SetDataTable()
Set(ByVal value As Object)
_DataTable = value
End Set
End Property
Public Sub New()
_DataGridView = New DataGridView
End Sub
'刷新分頁
Public Sub RefreshPage()
If _curPage <= _TotalPage Then
ShowDataview()
Else
MsgBox("錯誤")
End If
End Sub
'到第一頁
Public Sub GoFirstPage()
_curPage = 1
If _TotalPage >= 1 Then '只有一頁
ShowDataview()
Else
MsgBox("錯誤")
End If
End Sub
'下一頁
Public Sub GoNextPage()
If (_curPage + 1) <= _TotalPage Then
_curPage = _curPage + 1
ShowDataview()
End If
End Sub
'上一頁
Public Sub GoPrevPage()
If _curPage > 1 Then _curPage = _curPage - 1
If _curPage <= _TotalPage Then
ShowDataview()
End If
End Sub
'到最後一頁
Public Sub GoLastPage()
_curPage = _TotalPage
If _TotalPage >= 1 Then '只有一頁
ShowDataview()
End If
End Sub
'dataview顯示
Public Sub ShowDataview()
Dim daRow As DataRow
_DataGridView.Rows.Clear()
If _curPage * _RowsPerPage <= _DataTable.Rows.Count Then
For i = (_curPage - 1) * _RowsPerPage To _curPage * _RowsPerPage - 1
daRow = _DataTable.Rows(i)
addDataview(daRow)
Next
Else
For i = (_curPage - 1) * RowsPerPage To _DataTable.Rows.Count - 1
daRow = _DataTable.Rows(i)
addDataview(daRow)
Next
End If
End Sub
End Class
調用
Dim dgvPage As New clsPage
Private pageDataTable As New DataTable
dgvPage.GoFirstPage()‘跳轉第一頁
dgvPage.GoLastPage()'跳轉最後一頁
dgvPage.GoPrevPage()'跳轉上一頁
dgvPage.GoNextPage()'跳轉寫一頁
'增加記錄時候要加入到pageDataTable ,再根據每頁顯示的數量顯示到dataview(顯示控件)中