Avatar billede kroger Nybegynder
17. februar 2007 - 23:38 Der er 3 kommentarer og
1 løsning

Direkt elink til paging

jeg har en side hvor der er et paging system hvor der vises en post per side.
Jeg skal dog også have mulighed for at kunne komme til samme side direkte, og stadig bevare paging systemet.
Som Det er er lige nu er kaldet når man går ind på paging systemet:
strSQL = "Select * from malerisamling ORDER BY efternavn;"

Jeg vil så på en eller anden måde kunne lave en where klausul for at fange den rigtige post, men stadig bevare den fulde paging. Altså ala:
strSQL = "SELECT * FROM malerisamling where id = " & Request.QueryString("id") & ";"

NEdenunder er vist selve det paging system jeg bruger. Håber i kan hjælpe


If Request.QueryString("page") = "" Then
    iPageCurrent = 1
Else
    iPageCurrent = CInt(Request.QueryString("page"))
End If

    strSQL = "Select * from malerisamling ORDER BY efternavn;"

' Create recordset and set the page size
Set rs = Server.CreateObject("ADODB.Recordset")
rs.PageSize = iPageSize
rs.CacheSize = iPageSize

' Open RS
rs.Open strSQL, objConn, adOpenStatic, adLockReadOnly, adCmdText

' Get the count of the pages using the given page size
iPageCount = rs.PageCount

' If the request page falls outside the acceptable range,
' give them the closest match (1 or max)
If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
If iPageCurrent < 1 Then iPageCurrent = 1

' Check page count to prevent bombing when zero results are returned!
If iPageCount = 0 Then
                            Response.Write "Der opstod desværre en fejl!"
Else
    ' Move to the selected page
    rs.AbsolutePage = iPageCurrent
      iRecordsShown = 0
    Do While iRecordsShown < iPageSize And Not rs.EOF
   
    '''Alt visningskode fyres af.....
   
    iRecordsShown = iRecordsShown + 1
            ' Can't forget to move to the next record!
            rs.MoveNext
    Loop
End If
Avatar billede softspot Forsker
17. februar 2007 - 23:48 #1
Du kalder vel bare siden med parameteren page=4 (eller hvilket sidenummer du nu gerne vil ind på)...
Avatar billede kroger Nybegynder
18. februar 2007 - 00:00 #2
Problemet er at jeg ikke ved hvor den post jeg vil ind på er i paging sættet.
Paging sættet er over nogle kunstnere, og dette bliver "startet" når man trykker på kunstneren i en oversigt.

Men oppe i en topbar på siden kører der nogle randomudtag fra databasen med billeder fra de forskellige kunstnere. Når man trykker på et billede, fører den en til den kunstner der har lavet billedet. Dette er jo nemt nok, ved netop bare at sige Where id  = request.querystring("id"), men så er problemet jo at pagingen forsvinder....
Avatar billede softspot Forsker
18. februar 2007 - 00:32 #3
Kan du så ikke bare gennemløbe resultatet indtil du finder det id du leder efter. Mens du gennemløber resultatet kan du holde styr på hvilken side du er på, så kan du bruge dette indeks til at generere dine pagineringskontroller med - som du givetvis hele tiden har gjort.

Hvorvidt du skal gennemløbe resultatet eller bare vise en specifik side, kan du afgøre ud fra om det er page eller id der sendes med som parameter.

Jeg skal ikke udelukke at der findes en smartere måde at søge ind i resultatet (f.eks. find eller seek), men du kan evt. selv kigge på de to kommandoer på MSDN-library eller Google efter dem.
Avatar billede kroger Nybegynder
18. februar 2007 - 16:27 #4
Jeg valgte at gøre det på en lidt anden måde, som jeg ikke lige ved hvorfor det skulle tage mig flere dage at komme i tanke om.
Jag valgte simpelthen at køre et count på id'er under den id man er på, og det giver jo så hvad forrige side er. Gjorde det samme med fremad knappen, og lagde 2 til, så har man næste page værdi.

Men ellers tak for ideen
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

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