
1 Private Function PageCalc(ByVal TotalIDs As String, ByVal PageNumber As Integer, ByVal PerPage As Integer, ByRef TotalAmount As Integer, ByRef TotalPage As Integer) As String 2 On Error Resume Next 3 4 'Split to arr 5 Dim IDsArr() As String = TotalIDs.Split(",") 6 7 'Calc TotalAmount and TotalPage 8 TotalAmount = IDsArr.Length 9 TotalPage = Int(TotalAmount * 1.0 / PerPage) 10 If TotalAmount Mod PerPage > 0 Then 11 TotalPage += 1 12 End If 13 14 'ReCalc PageNumber 15 If PageNumber < 1 Then 16 PageNumber = 1 17 End If 18 If PageNumber > TotalPage Then 19 PageNumber = TotalPage 20 End If 21 22 'StartPos and EndPos 23 Dim StartPos As Integer = 0 24 Dim EndPos As Integer = 0 25 StartPos = (PageNumber - 1) * PerPage 26 EndPos = PageNumber * PerPage - 1 27 If EndPos > TotalAmount - 1 Then 28 EndPos = TotalAmount - 1 29 End If 30 31 'Get ResultIDs 32 Dim ResultIDs As String = "" 33 For I As Integer = StartPos To EndPos 34 ResultIDs = ResultIDs & "," & IDsArr(I) 35 Next 36 If ResultIDs <> "" Then 37 ResultIDs = ResultIDs.Trim(",") 38 End If 39 40 'Return 41 Return ResultIDs 42 End Function