Avatar billede martins Nybegynder
08. maj 2003 - 10:14 Der er 2 kommentarer og
1 løsning

Paging af sidehenvisninger

Hej Eksperter...

Jeg har en tagwall med paging, hvor jeg i bunden, udskriver siderne (1 2 3 4 5 6 7 ...). Problemet er imidlertid, at det er uoverskueligt og grimt, når der kommer mange sider, pt. er der 121 sider.

Jeg kunne godt tænke mig, at lave således, at der altid vil blive vist ca. 5 sider tilbage, og 10 sider frem. Et eksempel kan ses her: http://www.stivan.dk/tagwall.asp

Jeg kan lige nævne, at måden jeg udskriver siderne på, er med følgende løkke: for n = 1 to intRecords
Avatar billede eagleeye Praktikant
08. maj 2003 - 12:54 #1
Dette er i stil med google hvor den viser 10 ialt:

visAntal = 10
intStart = intPage - visAntal
intSlut  = intPage + visAntal
if intStart <= 0 then intStart = 1
if intSlut > intPageCount then intSlut = intPageCount
For intNum = intStart To intSlut
  Response.Write "<a href=?page=" & intNum & ">" & intNum & "</a> "
Next
Avatar billede eagleeye Praktikant
08. maj 2003 - 12:54 #2
Jeg har to eksempler som du kan se i dette styk kode:
Det er som google og et andet alternativ

Dette eks behøver ikke database at køre den har default 120 sider/pages:

intPageCount = 120



<HTML>
<HEAD>
<TITLE>Next Previos Page i Pagin eks:</TITLE>
</HEAD>
<BODY>
<%       
intPage = Request.QueryString("intPage")
if intPage = "" then intPage = 1

intPageCount = 120


'Eks som www.google.com
visAntal = 10
intStart = intPage - visAntal
intSlut  = intPage + visAntal
if intStart <= 0 then intStart = 1
if intSlut > intPageCount then intSlut = intPageCount
For intNum = intStart To intSlut
  if CInt(intNum) = CInt(intPage) then
    Response.Write " <b>" & intNum & "</b> "
  else
'    Response.Write "<a href=paging.asp?page=" & intNum & "><font face='arial' size='2'><b>" & intNum & "</b></font></a> "
    Response.Write "<a href="&Request.servervariables("SCRIPT_NAME")&"?intPage=" & intNum & "><font face='arial' size='2'><b>" & intNum & "</b></font></a> "
  end if
Next


Response.Write "<br><br><br>"


'Alternativt eks: altivs først og sidste side + 3 i mellem
visAntalImellem = 3 '
intStart = intPage - Int(visAntalImellem/2)
if intStart <= 1 then intStart = 2
intSlut  = intStart + visAntalImellem - 1
if intSlut >= intPageCount then
  if intStart > 1 then intStart = intStart - intSlut + intPageCount - 1
  if intStart <= 1 then intStart = 2
  intSlut = intPageCount-1
end if
'Vis førte side som link
intNum = 1
if CInt(intNum) = CInt(intPage) then
  Response.Write " <b>" & intNum & "</b> "
else
  Response.Write "<a href="&Request.servervariables("SCRIPT_NAME")&"?intPage=" & intNum & "><font face='arial' size='2'><b>" & intNum & "</b></font></a> "
end if
'Vis dem imellem
if (intNum + 1) < intStart then Response.Write "..."
For intNum = intStart To intSlut
  if CInt(intNum) = CInt(intPage) then
    Response.Write " <b>" & intNum & "</b> "
  else
'    Response.Write "<a href=paging.asp?page=" & intNum & "><font face='arial' size='2'><b>" & intNum & "</b></font></a> "
    Response.Write "<a href="&Request.servervariables("SCRIPT_NAME")&"?intPage=" & intNum & "><font face='arial' size='2'><b>" & intNum & "</b></font></a> "
  end if
Next
'Vis den sidste
intNum = intPageCount
if (intNum - 1) > intSlut then Response.Write "..."
if CInt(intNum) = CInt(intPage) then
  Response.Write " <b>" & intNum & "</b> "
else
  Response.Write "<a href="&Request.servervariables("SCRIPT_NAME")&"?intPage=" & intNum & "><font face='arial' size='2'><b>" & intNum & "</b></font></a> "
end if


%>
</BODY>
</HTML>
Avatar billede martins Nybegynder
08. maj 2003 - 13:02 #3
Takker - Det var hvad jeg skulle bruge :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester