Avatar billede eksperten1 Nybegynder
21. januar 2003 - 21:44 Der er 3 kommentarer og
1 løsning

Smart paging af recordset

Jeg ville gerne forsøge at lave en paging hvor brugeren højst får vist 10 sider ad gangen.

Hvis nu søgningen returner 150 sider og brugeren står på side 1 vises 1 2 3 4 5 6 7 8 9 10, men står brugeren på side 10 vises 5 6 7 8 9 10 11 12 13 14, ligesom der findes på eks. Google.com.

Er der nogen der kan pege mig i den rigtige retning, hvad er det nu lige jeg skal regne mig frem v.h.a. Jeg kan godt page på almindelig vis, der er nærmere den her formel for udregne den. (jeg kan vist ikke se skoven for bar træer)
Avatar billede medions Nybegynder
21. januar 2003 - 21:47 #1
Avatar billede eksperten1 Nybegynder
21. januar 2003 - 21:51 #2
:) Jo tak, så langt er jeg nået. Det er hvordan jeg lige skal udregne hvilke sidetal jeg skal vise, jeg vil ikke vise samtlige sider, kun 5 på hver side af det sidetal som brugeren er på. Se evt
<http://www.google.com/search?q=duplicate+select&hl=da&lr=&ie=UTF-8&start=90&sa=N>
Avatar billede eagleeye Praktikant
21. januar 2003 - 21:55 #3
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 eksperten1 Nybegynder
21. januar 2003 - 21:59 #4
>eagleeye, det var vist lige den her stump kode jeg skulle bruge.... TAK

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
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