Forum > ASP > Generella frågor
Hejsan. Jag söker ett pagingscript som har funktionen att visa 5 sidor åt gången.
ex. <<< föregående [11] 12 13 14 15 nästa >>>
Det finns många som har föregående/nästa med men detta hittar jag inte.
| Skriv utDet är ju bara att kolla vilken sida du är på nu, och om det finns 5 sidor framöver, rendera ut det + ASP.NET har väl några inbyggda paging funktioner med du bör kunna använda dig av.
Blev i fel forum :) ASP var det som var rätt
Har du någon paging idag? Vad har du för kontroll på paging? GetRows eller använder du Recordsets inbygda?
Vilken databas kör du mot?
Kör mot access... Kod taggarna verkar inte fungera? Dagens kod:
Set rsvisa = Server.CreateObject("ADODB.Recordset")
SQL = "select * from gastbok order by datum desc"
rsvisa.Open SQL, Connect, 3,3
nextPage = trim( Request( "nextPage" ))
IF nextPage = "" Then nextPage = 1
rsvisa.PageSize = 10
rsvisa.AbsolutePage = nextPage
Do until rsvisa.EOF OR rowCount > rsvisa.PageSize
rowCount = rowCount + 1
rsvisa.movenext
loop
If Request.Querystring("nextPage") 1 Then
Response.Write " "
End If
FOR a = 1 to rsvisa.PageCount
IF a cint( nextPage ) Then
Response.Write ""& a &" "
ELSE
Response.Write "["& a &"] "
End If
next
If a 1 Then
Response.Write " Framåt >>>"
End If
Mja, du har en for sats.
du bör nog även fundera på att kanske snygga upp koden, blanda inte stora och små bokstäver, bestäm vilket sätt du vill använda.
Du få göra om for satsen:
Loopa ifrån "CurrentPage" istället (nextPage) Och se att den har 5 sidor framför sig (rsvisa.PageCount-(nextPage+5)) att det finns.
Problemet är ganska enkelt:
dela upp vad du vill att det skall göra i små ettapper:
1. Jag vill visa max 5 sidor i navigeringen åt gången
2. Vad skall hända om man har mer än 5 sidor?
3. Vad skall hända om man är "mitten av en max sidor: ... 3 4 [5] 6 7 8 ..."
Tanken jag har är att få ordning på en gästbok med massa sidor.
- Att bara visa tex 5 sidor i taget så allt är lätt överskådligt.
- Som start visa de 5 först och sen i stigande ordning 5 i taget (eller de 5 innan)
- Att om det är möjligt navigera runt på de 5 som visas som vanligt men vet inte om det går
Visst ska själva koden rensas upp med :)
Ser problem redan nu:
Punkt 2: Vad händer om man är på sidan 10 av 20? Skall det stå:
[10] 11 12 13 14 15
?
Punkt3: Skall det visas 5 sidor även om den inte ha 5 sidor?
Ja det fungerar nog inte.... Finns det nån annan lösning tro?
Som sagt att som det är nu blir det massa sidor under. Kanske ska man bara visa top 50 och sen ha en egen länk för att visa alla inlägg..
Blir inte lika snyggt :)
Man kan göra allt du är ute efter, men det gäller ju lite att ha alla scenario och veta hur man vill behandla de olika scenarionerna som kan uppkomma vid en paging skript.
Ser problem redan nu:
Punkt 2: Vad händer om man är på sidan 10 av 20? Skall det stå:
[10] 11 12 13 14 15
?
Punkt3: Skall det visas 5 sidor även om den inte ha 5 sidor?
Är man på sidan 10 av 20 är det precis som du visade men om man bara har tex 2 inlägg som måste det nästan in en if-sats så att nästa inte syns innan 6 inlägg uppfyllts samt vara på minst inlägg 6 innan föregående syns. Men hur man skriver om scriptet för att uppfylla detta behöver jag hjälp.
Hittade en lösning här: http://www.codefixer.com/codesnippe...rdsetpaging.asp
Höll på igår kväll men en klass som känns lite smidigare att använda sig av (håller på att tweeka med den lite). Du säger bara hur många sidor du faktist har, och hur många sidor max som skall visas
Sen kommer du kunna:
Säga vilken sida du är på (default kör den på QueryString("PageNo"))
demo: http://voigt.se/sandbox/paging/ - har sagt att den har 200 sidor, och rendera ut max 11 nummer åt gången (ogämt för att få en så gämn fördelning mellan selektionerna från början och slut), kommer bygga in så man kan aktivera "qucik move" saken eller om man inte vill köra med den alls (första och sista posten).
Ja den där kommer att bli lysande :)
Hejsan.. Hemma efter lite semester igen :)
Ditt exempels kod skulle jag gärna villa prova för den verkar klart bättre.
Lagt upp lite fler demos, skall även lägga upp där du kan testa direkt, med egna värden osv, dock har jag inte alls haft tid att köra några större tester.