Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP > Generella frågor

Paging nästa/föregående

Hej!

Jag behöver lite nybörjarhjälp. Jag har använt mig av artikeln här på Aspkoll som handlar om paging med GetRows. Bra artikel även om jag förstås inte hänger med hela vägen. Resultatet blir nästan som jag vill ha det förrutom att det blir en extra post på sista sidan. Jag vill visa en post per sida, men på sista sidan visas alltså två. Vad är fel?


Dim oConn, strSql, Rs, arrRs, PosterPerSida, AntalPoster, ForstaPosten, SistaPosten, i

ForstaPosten = Request.QueryString("forsta")
PosterPerSida = Request.QueryString("poster")

If Not IsNumeric(ForstaPosten) Or Len(ForstaPosten) = 0 Then
ForstaPosten = 0
Else
ForstaPosten = CInt(ForstaPosten)
End If

If Not IsNumeric(PosterPerSida) Or Len(PosterPerSida) = 0 Then
PosterPerSida = 1
Else
PosterPerSida = CInt(PosterPerSida)
End If

Set oConn = ConnectDB()
strSql = "SELECT * FROM tblbilder WHERE Volym = 'Vol 00' ORDER BY Id"
Set Rs = oConn.Execute(strSql)

If Rs.EOF Then
arrRs = ""
Else
arrRs = Rs.GetRows()
End If

Rs.Close
Set Rs = nothing
Call DisconnectDB(oConn)

If IsArray(arrRs) Then

AntalPoster = Ubound(arrRs,2)

If AntalPoster > (PosterPerSida + ForstaPosten) Then
SistaPosten = PosterPerSida + ForstaPosten - 1
Else
SistaPosten = AntalPoster   
End If

For i = ForstaPosten To SistaPosten
Response.Write(arrRs(8,i) & "<br />")
Next 

If ForstaPosten > 0 Then
Response.Write("<a href=""sida1.asp?forsta=" & ForstaPosten-PosterPerSida & "&poster=" & PosterPerSida & """>Föregående</a> ")
End If

If SistaPosten < AntalPoster Then
Response.Write("<a href=""sida1.asp?forsta=" & ForstaPosten+PosterPerSida & "&poster=" & PosterPerSida & """>
Nästa</a>")
End If

Else
Response.Write("Arkivbilden saknas")
End If

ID: #20381 | Skapades: 2010-11-18 22:08:31 | Tråden har 5 svar och har lästs 254 gånger.

voigtan
voigtan

Gradering

#20382

Spontant (har inte testat Shadis artikel) men det är förmodligen:

If AntalPoster > (PosterPerSida + ForstaPosten) Then
    SistaPosten = PosterPerSida + ForstaPosten - 1
Else
    SistaPosten = AntalPoster
End If
frågan som ställer till problemet för dig, lite seg idag för att tänka ut hur den skall se ut, problemet är att ForstaPosten och SistaPosten bli helt galet på sista sidan.

även
If Not IsNumeric(ForstaPosten) Or Len(ForstaPosten) = 0 Then
    ForstaPosten = 0
Else
    ForstaPosten = CInt(ForstaPosten)
End If
Kan vara det som orsakar felet vad få du för värden på de variabler när du är på sista sidan?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20382 | Skapades: 2010-11-19 11:38:12

Shadi
Shadi

Gradering

#20383

Jag vill bara slänga in ett meddelande här om att artikeln kommer att skrivas om, eftersom jag har upptäckt felaktigheter iden. Jag har bara inte hunnit göra det än. Det ber jag om ursäkt för.

Administratör på AspKoll.se!
ID: #20383 | Skapades: 2010-11-19 11:53:12

Ok, jag får testa vidare.

ID: #20385 | Skapades: 2010-11-19 22:04:12

voigtan
voigtan

Gradering

#20387

Eftersom du inte hjälpte mig med det frågor jag hade:

If AntalPoster > (PosterPerSida + ForstaPosten) Then
Är lite fel, jag ändrade till:
If AntalPoster >= (PosterPerSida + ForstaPosten) Then
Och då fungerade bättre.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20387 | Skapades: 2010-11-20 11:26:22

Oj, sorry! Jag läste nog lite för snabbt och missade din fråga. Tolkade det som om du ringade in problemet åt mig. Stort tack för hjälpen!

ID: #20388 | Skapades: 2010-11-20 12:42:22
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy