Avatar billede papman Nybegynder
16. juli 2003 - 13:29 Der er 10 kommentarer og
1 løsning

Paging 5, 10, 15.

Hej Eksperter!
Så er den gal igen ;-)

Jeg sidder lige og roder med en paging side som ser sådanne ud:

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("demo.mdb")
Conn.Open DSN

strSQL = "SELECT LinkURL FROM Links"
rs.Open strSQL, Conn,1

If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 10
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>

Nu er mine spørgsmål så:
1. Når jeg kommer op på x antal id'er vokser
"Gå til side 1 2 3 4 5 6 7 8 osv..." Hvad skal koden hede for at der kun bliver vist fx 5 sider af gangen.
"<< Gå til side 105 106 107 108 109 110 >>"

2. Hvordan får man vendt række følgen. Så den starter fra "Gå til side 110 109 108 107 106 105 >>"

Håber det er forståeligt.
Avatar billede ellebaek Nybegynder
16. juli 2003 - 13:40 #1
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("demo.mdb")
Conn.Open DSN

strSQL = "SELECT LinkURL FROM Links"
rs.Open strSQL, Conn,1

If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 10
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "
'***************
' Her
'***************
For intNum = intPage - 5 To intPage + 5
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > Clng(intPage -5) Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

'**********************
'**  Næste linie    **
'**********************
If Clng(intPage) < Clng(intPage + 5) Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>

På denne måde får du (skulle jeg mene) siderne der ligger 5 over og 5 under den side du befinder dig på vist.

Jeg kan ikke helt overskue det med at skifte om...

Jeg prøver det lige..!
Avatar billede ellebaek Nybegynder
16. juli 2003 - 13:55 #2
Ups...

Denne virker med 5 over og 5 under.

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("demo.mdb")
Conn.Open DSN

strSQL = "SELECT LinkURL FROM Links"
rs.Open strSQL, Conn,1

If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 5
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "
'***************
' Her
'***************
For intNum = intPage - 5 To intPage + 5
if intNum <= intPageCount AND intNum > 0 then
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
end if
Next


Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

'**********************
'**  Næste linie    **
'**********************
If Clng(intPage) < intPageCount Then
  Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>

Mht. omvendt, så virker dette...
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("demo.mdb")
Conn.Open DSN

strSQL = "SELECT LinkURL FROM Links"
rs.Open strSQL, Conn,1

If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 5
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkURL") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "
'***************
' Her
'***************
intNum = intPage +5
while not intNum < intPage -5
if intNum <= intPageCount AND intNum > 0 then
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
end if
intNum = intNum -1
wend


Response.Write "<p>"
If Clng(intPage) < intPageCount Then
    Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

'**********************
'**  Næste linie    **
'**********************
If Clng(intPage) > 1 Then
  Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>
Avatar billede papman Nybegynder
16. juli 2003 - 14:22 #3
Ja så er vi lige ved at være der men jeg vil godt have at det ser sådanne ud.

(Side 1)    1 2 3 4 5 >>
(side 2) << 6 7 8 9 10 >>
(side 3) << 11 12 13 14 15 >>
(side 4) << 16 17 18 19 20 >>
(side 5) << 21 22 23 24 25 >>
Avatar billede ellebaek Nybegynder
17. juli 2003 - 21:26 #4
jeg er ikke helt sikker på hvad du vil...

Mener du at hvis man trykker på pilen så skal man komme til side 2 ??

for normalt, hvis man trykker på 2 tallet, kommer man til side 2...!
Avatar billede papman Nybegynder
18. juli 2003 - 10:57 #5
Nu er jeg også selv lidt forviret ;-)
Men den funktion jeg ledte efter er den samme som på google.

http://www.google.com/search?q=hulk&hl=da&lr=&ie=UTF-8&oe=UTF-8&start=450&sa=N
Jeg kunne bare godt tænke mig at den kun viste fx 5 id'er.
lad og sige vi kigger på side 6 så skulle den se sådanne ud.
<< 4-5 [6] 7-8 >>
Forstår du ?
Avatar billede ellebaek Nybegynder
22. juli 2003 - 03:27 #6
jeg er med...

Fikser det lige i morgen!
Avatar billede ellebaek Nybegynder
22. juli 2003 - 16:50 #7
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("demo.mdb")
Conn.Open DSN

strSQL = "SELECT LinkURL FROM Links"
rs.Open strSQL, Conn,1



If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 5
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount



    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("LinkUrl") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
End If
rs.Close
Set rs = Nothing

Response.Write "<p>Gå til side "

tal = intPageCount - intPage
if not tal > 2 then
tal = 4 - tal
else
tal = 2
end if


i = 0
For intNum = intPage - tal To intPage + 10
if i < 5 then
'if not intpage +2 > intpageCount then
if intNum <= intPageCount AND intNum > 0 then
i = i+1
if CInt(intPage) = CInt(intNum) then
response.write "[" & intPage & "] "
else
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
end if
end if
end if
Next


Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"


If Clng(intPage) < intPageCount Then
  Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If
%>

Er det sådan her du vil have det ...?
Avatar billede papman Nybegynder
22. juli 2003 - 17:13 #8
Lige netop 1000 tak for hjælpen !!!!
Avatar billede ellebaek Nybegynder
22. juli 2003 - 17:36 #9
np...
Takker for points!
Avatar billede papman Nybegynder
22. juli 2003 - 17:47 #10
Selv tak ;-)
Tænkte om du var på icq eller messenger?
Avatar billede ellebaek Nybegynder
22. juli 2003 - 19:03 #11
icq: 29506560
messenger: jens_ellebaek@hotmail.com
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