Avatar billede Slettet bruger
22. april 2002 - 16:58 Der er 14 kommentarer og
1 løsning

Paging af hentede elementer

Hej eksperter....

jeg henter dette fra en db:

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

' SQL forespørgsel
strSQL = "Select * from guest"

Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke
Do

response.write "<tr><td><table cellpadding='0' cellspacing='0' width='100%'>"
response.write "<tr><td width='100px'><h2>Navn:</h2></td><td width='400px'><h2>" & rs("navn") & "</h2></td></tr>"
response.write "<tr><td><h2>Email:</h2></td><td><h2>" & rs("email") & "</h2></td></tr>"
response.write "<tr><td colspan='2' height='5px'></td></tr>"
response.write "<tr><td valign='top'><h2>Besked:</h2></td><td><h2>" & rs("besked") & "</h2></td></tr>"
response.write "</table></td></tr>"

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

While Not rs.EOF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
wend

men hvordan for jeg lavet det så den kun viser eks 10 ellementer pr. side, og man kan hoppe mellem siderne ?
Avatar billede askhoej Praktikant
22. april 2002 - 17:09 #1
Avatar billede askhoej Praktikant
22. april 2002 - 17:13 #2
Og hvis det er meget store mængder data du skal hente så er denne mere Database venlig :-)

http://www.4guysfromrolla.com/webtech/070500-1.shtml
Avatar billede Slettet bruger
22. april 2002 - 17:16 #3
askhoej>>

jeg er rimelig newbei til dette, så for lidt ekstra point, kunne jeg så få dig til at forklare det for mig ??

så kunne det jo ligsom også være at jeg kunne finde ud af det en anden gang !!
Avatar billede askhoej Praktikant
22. april 2002 - 17:19 #4
questis >> Det kan vi sagtens finde ud af :-) Er du på messenger eller skal vi gennemgå det her?
Avatar billede Slettet bruger
22. april 2002 - 17:21 #5
her ville nu passe mig bedst, og så strider det da ikke imod reglerne på eksperten.....

så hvis det kunne lade sig gøre ville det være perfekt...

du kan se på dette link, hvad det er det skal laves på:

http://www.questis.dk/koder/asp/guest.asp

en lille gæstebog, som et lille projekt....
Avatar billede askhoej Praktikant
22. april 2002 - 17:27 #6
Okay :-)

Begrebet hedder paging af resultater og går ud på at vise et bestemt antal Records på hver side og herefter kunne bladre frem og tilbage på siderne.

Med udgangspunkt i den danske artikel, vil jeg her gennemgå hvordan det fungerer:

Først finder vi af hvilken side der skal vises og dette gøres udfra en parameter i urlen: page, hvis denne parameter ikke er der vises side 1.

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

fortsættes...
Avatar billede askhoej Praktikant
22. april 2002 - 17:38 #7
Herefter oprettes der et nyt RecordSet som bruges til at hente og midlertidig lagre records fra din database. Der laves en forespørgsel til databasen i SQL og en forbindelse til databasen.


<%
Set RS = Server.CreateObject("ADODB.RecordSet")
strSQL = "Select * from guest"
strDSN = "DRIVER={Microsoft Access Driver *.mdb)};DBQ="&Server.MapPath("guest.mdb")

'Her fyldes der data i Recordset
rs.Open strSQL, strDSN, 1

'Der undersøges om der blev fundet nogen Records i databasen
If Not (RS.BOF Or RS.EOF) Then

    rs.PageSize = 10        'Hvor mange Records der skal vises på hver side
    rs.AbsolutePage = intPage    'Hvilken side vi skal starte på
    intRecCount = rs.PageSize    'Antallet af records på side
    intPageCount = rs.PageCount    'Antallet af sider

    'Udskiver side x af y
    Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"

    'Udskriver de Records der er på siden
    Do While Not rs.EOF And intRecCount > 0
            Response.Write rs("besked") & "<br>"
            intRecCount = intRecCount - 1
            rs.MoveNext
    Loop

End If
'Her nedlægger vi vores Recordset
rs.Close
Set rs = Nothing
%>

fortsættes...
Avatar billede askhoej Praktikant
22. april 2002 - 17:43 #8
Det sidste der så mangler er navigationen i bunden hvor dine brugere skal kunne navigere frem og tilbage imellem de sider der er i din gæstebog. Der gøres sådan her:

<%
'Sådan her listes alle de sider som findes i din gæstebog
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=guest.asp?page=" & intNum & ">" & intNum & "</a> "
Next

'Sådan her hvis de vil gå en side tilbage
Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=guest.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

'Og sådan her hvis de vil gå en side frem
Response.Write "&nbsp;"

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

Det var vist det mest grundlæggende omkring paging, nu skal du bare sætte det hele flot op og så skulle den være i vinkel. Håber du kan bruge det.
Avatar billede Slettet bruger
22. april 2002 - 17:45 #9
lyder rigtigt godt flot gennemgang, kigger lige på det og håber jeg må spørge hvis der skulle blive noget *SS*
Avatar billede askhoej Praktikant
22. april 2002 - 17:46 #10
du spørgs bare hvis der er noget du er i tvivl om...
Avatar billede Slettet bruger
22. april 2002 - 17:51 #11
hmmm....

jeg får denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified


den linie ser sådanne ud:
rs.Open strSQL, strDSN, 1
Avatar billede Slettet bruger
22. april 2002 - 17:56 #12
har fundet det, tog fra dig, der manglede en (
Avatar billede askhoej Praktikant
22. april 2002 - 17:58 #13
Okay, prøv at bruge nedenstående til at åbne Recordsettet med:

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

Set RS = Conn.Execute(strSQL)
Avatar billede askhoej Praktikant
22. april 2002 - 17:58 #14
oki
Avatar billede Slettet bruger
23. april 2002 - 13:44 #15
takker for en hurtig og meget flot hjælp. håber det er nok point, ellers råb højt
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