Pagination Script in ASP ' iNumPerPage is the number of items to ' display on each page ' sURL is the page to put with the link ' , sQuerystring is additional qs stuff ' adodbConnection, adodbCommand, sTable ' are all for the table to get row count from. * ' * ' Print out the numbers (if any) betwee ' n the "previous" and "next" buttons ' It'll act like this (current # is in ' bold): ' 1 2 3 4 5 6 7 8 9 10 >> next ' previous << 11 12 13 14 15 16 17 18 * ' * '' **************************************** Sub PrintRecordsetNav( iNumPerPage, adodbConnection, adodbCommand, sTable, sURL, sQuerystring ) Dim iTtlNumItems, iDBLoc, sSqlTemp, iTtlTemp Dim iDBLocTemp, sURLBeg, iA, iB, x, iTemp, rsObj iDBLoc = CInt(Request("iDBLoc")) iTtlNumItems = CInt(Request("iTtlNumItems")) ' Get ttl num of items from the database if it's Not already In the QueryString If (iTtlNumItems = 0) Then Set rsObj = Server.CreateObject("ADODB.Recordset") sSqlTemp = "SELECT COUNT(*) FROM " & sTable adodbCommand.CommandText = sSqlTemp rsObj.Open adodbCommand If Not(rsObj.EOF) Then iTtlNumItems = rsObj(0) End If rsObj.Close Set rsObj = Nothing End If iTtlTemp = iTtlNumItems iNumPerPage ' this is the number of numbers overall (use the "" To return int) iDBLocTemp = iDBLoc iNumPerPage ' this is which number we are currently On (use the "" To return int) If (sQuerystring <> "") Then sURLBeg = " 0) Then Response.Write sURLBeg & (iDBLoc - iNumPerPage) & """>Previous " End If ' Print the << If (iDBLocTemp >= iNumPerPage) Then Response.Write sURLBeg & (( iDBLocTemp iNumPerPage ) * iNumPerPage ^ 2) - (iNumPerPage * 9) & """><< " End If ' Print the numbers in between. Print them out in sets of 10. iA = ( iDBLocTemp iNumPerPage ) * iNumPerPage iB = ( iDBLocTemp iNumPerPage ) * iNumPerPage + iNumPerPage For x = iA To iB iTemp = (x * iNumPerPage) If (iTemp < iTtlNumItems) Then ' takes care of extra numbers after the overall final number If (iDBLoc = iTemp) Then Response.Write " [" & x+1 & "]" Else Response.Write " " & sURLBeg & (x * iNumPerPage) & """>" & x+1 & "" End If Else Exit For End If Next ' Print the >> If (iTtlTemp > iDBLocTemp) Then If ((iDBLocTemp + iNumPerPage) <= iTtlTemp) Then Response.Write " " & sURLBeg & (( iDBLocTemp iNumPerPage ) * iNumPerPage + iNumPerPage ) * iNumPerPage & """>>> " End If End If ' Print the "Next" If ((iDBLoc + iNumPerPage) < iTtlNumItems) Then Response.Write " " & sURLBeg & (iDBLoc + iNumPerPage) & """>Next" End If '***** End DISPLAY ***** End Sub