Denna kod för paging tillsammans med GetRows() fungerar bra tills det är ett jämnt antal Ingen som vet än? Det fungerar heller inget vidare att ta bort +1 i räkningen av pagingen.. Du kan ju prova:GetRows() + paging [löst]
inlägg (20,30,40,50 etc, inte 10!) som ska visas. Först visar pagingen 1 2 3 eller vad det nu
kan vara för siffror beroende på hur många aktuella poster som finns. Men om det finns 20, 30, 40
poster etc. så visas det 1 2 3 för 20 inlägg och när man kommer till den tredje sidan så
finns det inga svar där än.
Felet ligger i sftPageCount = (sftRs.Recordcount \ sftRs.Pagesize) + 1 men den koden måste
jag ha för att paging för över 10 poster men under 20 poster ska visas..
Hur fixar jag detta? Oerhört tacksam.. Dessutom får ju du en liten hint om hur man använder
paging och GetRows() tillsammans :)
<% 'Detta kodstycket är en fortsättning på listningen av alla poster i en specifik tråd
Dim sftCn, sftRs, sftstrSQL, viewPage, sftRowCount, sftPageCounter, arrRecs, ifo, f(8)
viewPage = Request.Querystring("viewPage")
If viewPage="" Then viewPage=1
sftRowcount=0
Set sftCn = Server.CreateObject("ADODB.Connection")
sftCn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("forum/db_forum.mdb") & ";pwd=" & Password & ";"
Set sftRs = sftCn.Execute("Select * From tbl_answers Where TopicId=" & Request.Querystring("id") & " Order By Date")
With sftRs
.Close
.Cursortype=3
.Open
.Pagesize=10
End With
If sftRs.EOF And Forum_NoId="No" Then Response.Write ""
If sftRs.EOF And Not Forum_NoId="No" Then
Response.Write "Inga svar än.. Skriv svar nedan."
Else sftRs.Absolutepage=cInt(viewPage)
End if
If Not sftRs.EOF And Not Forum_NoId="No" Then
Dim sftAntal, sftPageCount, sftPz
sftAntal = sftRs.Recordcount
sftPageCount = (sftRs.Recordcount \ sftRs.Pagesize) + 1
sftPz = sftRs.Pagesize
arrRecs = sftRs.GetRows(sftPz)
sftRs.Close : Set sftRs = Nothing
sftCn.Close : Set sftCn = Nothing
If IsArray(arrRecs) Then
For ifo = 0 To UBound(arrRecs,2) And sftRowcount < sftPz
f(0) = arrRecs(0,ifo)
f(1)= arrRecs(1,ifo)
f(2)= arrRecs(2,ifo)
f(3)= arrRecs(3,ifo)
f(4)= arrRecs(4,ifo)
f(5) = arrRecs(5,ifo)
f(6) = arrRecs(6,ifo)
f(7) = arrRecs(7,ifo) %>
<a name="#<%=f(0)%>"></a><table><tr bgcolor="<%=Border%>"><td width="528">
<table cellpadding="6" cellspacing="0" border="0"><tr><td bgcolor="<%=stCell%>">
<table cellpadding="0" cellspacing="0" border="0"><tr><td width="460"><span class="minirubrik"><%=f(5)%></span></td>
<td>Redigera</td></tr></td></tr></table>
</td></tr><tr><td bgcolor="<%=stCell2%>"><%=fixmylinks(Replace(f(6),vbCrLf,"<br>"))%><p>
<% If Len(f(3))>0 Then %><% End If %><%=f(2)%><% If Len(f(3))>0 Then %><% End If %>
| <%=Left(f(7),16)%> | <span class="minirubrik">Id:</span> <%=f(0)%></td></tr></table></td></tr></table><p>
<% sftRowcount = sftRowcount + 1
Next
End If
End If
If sftAntal > sftPz Then
For sftPagecounter = 1 to sftPageCount %>
&viewpage=<%=sftPagecounter%>"><%=sftPageCounter%>
<% Next
If Len(Request.Querystring("viewpage"))>0 Then %> | Du är på sida <span class="minitext"><%=Request.Querystring("viewpage")%></span><% End If
End If %>Sv: GetRows() + paging [ej löst]
Sv: GetRows() + paging [ej löst]
<code>
<%
Dim sftCn
Dim sftRs
Dim sftstrSQL
Dim viewPage
Dim sftRowCount
Dim sftPageCounter
Dim arrRecs
Dim ifo
Dim f(8)
Dim sftAntal
Dim sftPageCount
Const sftPageSize = 10
Set sftCn = Server.CreateObject("ADODB.Connection")
sftCn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("forum/db_forum.mdb") & ";pwd=" & Password & ";"
Set sftCn = Server.CreateObject("ADODB.Recordset")
sftRs.PageSize = sftPageSize
sftRs.CursorLocation = 3 'adUseClient
sftRs.Open "SELECT * FROM tbl_answers WHERE tbl_answers.TopicId=" & Request.Querystring("id") & " ORDER BY tbl_answers.[Date]", sftCn
If sftRs.EOF Then
If Forum_NoId <> "No" Then
Response.Write "Inga svar än.. Skriv svar nedan."
End If
Else
sftAntal = sftRs.Recordcount
sftRowcount=0
sftPageCount = ((sftRs.Recordcount - 1) \ sftPageSize) + 1
viewPage = Request.Querystring("viewPage")
If IsNumeric(viewPage) Then
viewPage = CDbl(viewPage)
Else
viewPage = 1
End If
sftRs.Absolutepage = cInt(viewPage)
arrRecs = sftRs.GetRows(sftPageSize)
sftRs.Close
Set sftRs = Nothing
sftCn.Close
Set sftCn = Nothing
If IsArray(arrRecs) Then
For ifo = 0 To UBound(arrRecs, 2)
f(0) = arrRecs(0,ifo)
f(1)= arrRecs(1,ifo)
f(2)= arrRecs(2,ifo)
f(3)= arrRecs(3,ifo)
f(4)= arrRecs(4,ifo)
f(5) = arrRecs(5,ifo)
f(6) = arrRecs(6,ifo)
f(7) = arrRecs(7,ifo)
%>
<a name="#<%=f(0)%>"></a>
<table>
<tr bgcolor="<%=Border%>">
<td width="528">
<table cellpadding="6" cellspacing="0" border="0">
<tr>
<td bgcolor="<%=stCell%>">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="460"><span class="minirubrik"><%=f(5)%></span></td>
<td>Redigera</td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="<%=stCell2%>"><%=fixmylinks(Replace(f(6),vbCrLf,"<br>"))%>
<p><%If Len(f(3))>0 Then Response.Write "" & f(2) & "" %> | <%=Left(f(7),16)%> | <span class="minirubrik">Id:</span> <%=f(0)%>
</td>
</tr>
</table>
</td>
</tr>
</table><p><%
sftRowcount = sftRowcount + 1
Next
End If
End If
If sftAntal > sftPageCount Then
For sftPagecounter = 1 to sftPageCount
%>&viewpage=<%=sftPagecounter%>"><%=sftPageCounter%><%
Next
%> | Du är på sida <span class="minitext"><%=viewPage%></span><%
End If
%>
</code>