Jag behöver lite hjälp med en kod-snutt som inte vill fungera riktigt som jag vill. Koden är en modifiering av paging-scriptet som finns här på WF.
Sub PageNumbers2
Dim i
If TotalPages = 0 Then
Response.Write("0")
Exit Sub
End If
For i = 1 To TotalPages
If CInt(i) <> CInt(ThisPage) Then
Response.Write("<A href='" & ScriptName & "?page=" & i & "'>" & ((ThisPage + i) * PageSize) - PageSize & "-" & i * PageSize & "</A>")
Else
Response.Write("<B>" & LoopStart + 1 & "-" & i * PageSize & "</B>")
End If
Response.Write(" ")
Next
End Sub
Tanken är att denna kod ska generera direkt-länkar till resp. sidor, så här: 1-5, 6-10, 11-15, 16-20 .....(utan komman)
Någon som har koll?
Hela koden:
Dim ScriptName
ScriptName = Request.ServerVariables("SCRIPT_NAME")
'Skapa en förbindelse mot databasen
'----------------------------------
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("guest1.mdb") & ";"
'Hämta poster ur databasen genom att skapa ett recordset
'-------------------------------------------------------
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "SELECT * FROM gastbok ORDER BY datum", Con
'Om inte recordset är tomt så skapa en 2D
'array med innehållet från databasen
'----------------------------------------
If Not RS.EOF Then
MyArray = RS.GetRows()
End If
'Stäng recordset och koppla från
'förbindelsen mot databasen
'-------------------------------
RS.Close
Set RS = Nothing
Con.Close
Set Con = Nothing
'Deklarera hur många poster som ska visas per sida
'-------------------------------------------------
Dim PageSize
PageSize = 5
'Avgör vilken sida dokumentet befinner sig på
'--------------------------------------------
Dim ThisPage
If Request.QueryString("page") = "" Then
ThisPage = 1
Else
ThisPage = CInt(Request.QueryString("page"))
End If
'Räkna ut det totala antalet poster som
'hämtats från databasen
'--------------------------------------
Dim TotalRecords
TotalRecords = UBound(MyArray,2) + 1
'Avgör hur många sidor som genererats
'------------------------------------
Dim TotalPages
sTotalPages = TotalRecords / PageSize
If sTotalPages < 1 Then
sTotalPages = 1
Else
sDecTotalPages = sTotalPages - CLng(sTotalPages)
If sDecTotalPages > 0 And sDecTotalPages < 0.5 Then
sTotalPages = CLng(sTotalPages) + 1
Else
sTotalPages = CLng(sTotalPages)
End If
End If
TotalPages = sTotalPages
'Avgör vilket record som loopen ska starta på
'--------------------------------------------
Dim LoopStart
If ThisPage = 1 Then
LoopStart = ThisPage - 1
Else
LoopStart = (ThisPage * PageSize) - PageSize
End If
'Avgör vilket record som loopen ska stanna på
'--------------------------------------------
Dim LoopEnd
If ThisPage = TotalPages Then
LoopEnd = TotalRecords - 1
Else
LoopEnd = (LoopStart + PageSize) - 1
End If
'"Nästa-sida-länk"
'-----------------
Sub NextPage
If CInt(ThisPage) < CInt(TotalPages) Then
Response.Write("<A href='" & ScriptName & "?page=" & ThisPage + 1 & "'>Nästa</A>")
Else
Response.Write("<B style=""color: #687E91;"">Nästa</B>")
End If
End Sub
'"Föregående-sida-länk"
'----------------------
Sub PrevPage
If CInt(ThisPage) > 1 Then
Response.Write("<A href='" & ScriptName & "?page=" & ThisPage - 1 & "'>Föregående</A> ")
Else
Response.Write("<B style=""color: #687E91;"">Föregående</B>")
End If
End Sub
'"Direkt-länkar till resp. sidor" modell 2
'-----------------------------------------
Sub PageNumbers2
Dim i
If TotalPages = 0 Then
Response.Write("0")
Exit Sub
End If
For i = 1 To TotalPages
If CInt(i) <> CInt(ThisPage) Then
Response.Write("<A href='" & ScriptName & "?page=" & i & "'>" & ((ThisPage + i) * PageSize) - PageSize & "-" & i * PageSize & "</A>")
Else
Response.Write("<B>" & LoopStart + 1 & "-" & i * PageSize & "</B>")
End If
Response.Write(" ")
Next
End Sub
Sub PageNumbers2
Dim i
If TotalPages = 0 Then
Response.Write "0"
Exit Sub
End If
For i = 1 To TotalPages
Dim StartRow,Endrow
startRow = (i -1) * PageSize + 1
endRow = i*pagesize
if endRow > TotalRecords then endRow = TotalRecords
If CInt(i) <> CInt(ThisPage) Then
Response.Write "<A href='" & ScriptName & "?page=" & i & "'>" & startRow & "-" & endrow & "</A>")
Else
Response.Write("<B>" & startRow & "-" & endRow & "</B>")
End If
Response.Write " "
Next
End Sub
------------------ essentitia preter non sans multiplicandum