Avatar billede Slettet bruger
26. januar 2004 - 14:25 Der er 10 kommentarer og
1 løsning

Paging med intervaller

Jeg har lavet et paging system på baggrund af

http://activedeveloper.dk/locator.asp?guid=001000000279

og det virker fint nok.
Jeg vil bare gerne ha' udskrevet det på denne måde i stedet

Viser nu 1 - 10 ud af i alt 21 indlæg

Gå til  10-30 30-40 40-50 etc.

dog er den variabel som definerer LIMIT i sql'en, dynamisk fra en form.
Avatar billede eagleeye Praktikant
26. januar 2004 - 17:56 #1
Jeg forstår ikke helt spørgsmålet??
Jeg syntes ikke jeg kan se sammenhæng i de tal du skriver??
1-10 af ialt 21 indlæg

Links som 10-30 30-40 ..
(10-30)Er det et link og er dte antal poster på en side eller??

Samt hvad betyder:
dog er den variabel som definerer LIMIT i sql'en, dynamisk fra en form

Står der at X-antal pr side kan vælges i fra en form?
Avatar billede Slettet bruger
26. januar 2004 - 21:05 #2
Prøver lige igen

Skal se således ud:

Viser nu 1-10 af ialt 27500456 indlæg

Vis 10-20 | 20-30 | 30-40 etc.

10-20 | 20-30 | 30-40 | er links til at page recordsettet. Men "springene" skal passe til det antal poster brugeren, i sin søgning, har valgt der skal vises pr. side.
Avatar billede eagleeye Praktikant
26. januar 2004 - 21:27 #3
Med udgangs punkt i den artikel du har linket til:
Man skal angive tallet i  Request.Form("antal")
Antallet af records i databasen skal være i variablen  intRecords


intPage = Request.QueryString("page")
if intPage = "" OR not isNumeric(intPage) then
    intPage = int(1)
else
    intPage = int(intPage)
end if
userSize  = Request.Form("antal")
if userSize = "" then userSize = Request.QueryString("antal")
if userSize = "" then userSize = 10 'Default hvis ikke andet er angivet.


visfra = ((intPage-1)*(userSize)+1)
vistil = intPage*userSize
if vistil > intRecords then vistil = intRecords
Response.Write "Viser nu " & visfra & " til " & vistil & " af ialt " & intRecords & " indlæg"



Her er det som udskriver linkes:

intPages = int(intRecords/userSize)+1
For i = 1 to intPages
  Response.Write "<a href=""?page=" & i & "&antal=" & userSize & """>"
  Response.Write ((i-1) * userSize) & "-" & i*userSize
  Response.Write "</a>"
  if i < intPages then Response.Write " | "
next
Avatar billede Slettet bruger
28. januar 2004 - 12:51 #4
takker, ændrede dog lige
Response.Write ((i-1) * userSize) & "-" & i*userSize
til
Response.Write (1+(i-1) * userSize) & "-" & i*userSize

for at få det til at passe.. Smid et svar :)
Avatar billede eagleeye Praktikant
28. januar 2004 - 18:04 #5
Ok her et svar :)
Avatar billede Slettet bruger
29. januar 2004 - 14:58 #6
Hmm, jeg har kombineret det med en søgning nu og vil gerne gøre så paging kun bliver vist hvis antallet af records > det antal brugeren har valgt at få ad gangen.
Avatar billede Slettet bruger
29. januar 2004 - 14:59 #7
intAntalPoster indeholder antallet af poster (hvadenten det er fra en søgning eller ej) og intAntalVis indeholder det af brugeren valgte antal poster der skal vises ad gangen.

og så tænkte jeg at jeg kunne bruge

if intAntalPoster > intAntalVis then
' vis paging
end if
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:07 #8
Ja det skulle kunne gøre det. Eller sådan her, det kommer an på hvad variablerne hedder:

if intRecords > userSize then
Avatar billede Slettet bruger
29. januar 2004 - 17:44 #9
Det bevirker at paging slet ikke bliver vist :(
Avatar billede Slettet bruger
29. januar 2004 - 17:53 #10
ahh - det hjalp med en casting

if int(intAntalPoster) > int(intAntalVis) then
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:54 #11
arh ok ;)
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