Avatar billede 12tri Nybegynder
16. oktober 2002 - 11:50 Der er 5 kommentarer og
3 løsninger

Paging

Hej eksperter.

Jeg er bl.a. ved at lave et forum, og i den forbindelse, vil jeg gerne lave paging således at alle indlæggene ikke vises på en side, men fordeles med evt. 20 på hver side, og evt til sidst komme i et arkiv.

Derfor vil jeg gerne have lidt ”undervisning” i hvordan paging kan laves. Alle mine data ligger i en acces database. Evt henvisninger til gennemgang er meget velkomne.

Morten / morten@12tri.dk
Avatar billede thomas_regin Nybegynder
16. oktober 2002 - 11:53 #1
Rigtigt god artikel på activedeveloper.dk

http://activedeveloper.dk/aspdigital/kapitel2/paging.asp

Thomas Regin.
Avatar billede criterius.dk Nybegynder
16. oktober 2002 - 12:00 #2
Ikke for at bitche, men prøv at søge på ordet "paging" i "ASP"-ketegorien ----- 415 hits...!!!

Umiddelbart vil jeg skyde på, at 50% af dem ender (starter) med ovenstående link...

Pointe: "BRUG SØGEFUNKTIONEN!"
Avatar billede eagleeye Praktikant
16. oktober 2002 - 12:01 #3
Jeg kan prøve at uddybe dette eks (http://activedeveloper.dk/aspdigital/kapitel2/paging.asp) lidt, du skal vcopy/paste hele koden fra siden ind i en ny fil...:

Du har sikkert din egen SQL-sætning som du bruger til at søge med så den udskrifter du bare den fra eksemplet:
strSQL = "SELECT LinkURL FROM Links"
med dig egen:
strSQL = DIN SQL SÆTNING


Så angiver du hvor mange du vil havde på hver side i linier, 10->20:
    rs.PageSize = 10


Ud skrivning af søge resultet skal gøres inde i det loop der er:
    Do While Not rs.EOF And intRecCount > 0

'UDKSKRIV DINE KOLONNER HER     
      Response.Write rs("LinkURL") & "<br>"
   
      intRecCount = intRecCount - 1
      rs.MoveNext
    Loop

Du har sikkert et tilsvarne loop som du udskriver søgeresultatet i idag så du udskirve denne linie:
        Response.Write rs("LinkURL") & "<br>"
Men alle de linier du måtte hvade behov for...



Dette kode laver en liste i bunde med Gå til side 1 2 3 4 osv:
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next


Dette kode lave en links til forrige side via truk på <<:
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


Dette kode lave en links til næste side via tryk på >>:
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


Jeg håber det giver lidt ekstra hjælp ellers så bare spørg igen.
Avatar billede exp-ralle Nybegynder
16. oktober 2002 - 12:01 #4
Avatar billede 12tri Nybegynder
16. oktober 2002 - 17:37 #5
Jeg kan ikke få det til at virke. Jeg får en fejl:

ADODB.Recordset fejl '800a0cb3'
Den ønskede handling understøttes ikke af objektet eller provideren.
/handel/page.asp, linje 20

Her er linie 20 :

18:If Not (rs.BOF Or rs.EOF) Then
19:rs.PageSize = 10
20:rs.AbsolutePage = intPage
21:intRecCount = rs.PageSize
22:intPageCount = rs.PageCount

Nogen forslag jeg bruger:

Set objConn = Server.CreateObject("ADODB.Connection")
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;"
%><!--#INCLUDE FILE="../include/db.inc" --><%
objConn.Open conStr
strSQL = "Select * from handel order by id desc"
Set rs = objConn.Execute(strSQL)

Til at åbne min db, includefilen angiver stigen til db'en
Avatar billede eagleeye Praktikant
16. oktober 2002 - 18:13 #6
du skal tilføje denne linie:
Set rs = Server.CreateObject("ADODB.RecordSet")


Og så det vigtigt du åbner dit recordset sådan her:

rs.Open strSQL, objConn, 1

og ikke sådan her:
Set rs = objConn.Execute(strSQL)


Da recordset eller ikke understytter paging.
Avatar billede 12tri Nybegynder
17. oktober 2002 - 19:07 #7
det prøver jeg lige
Avatar billede 12tri Nybegynder
12. november 2002 - 10:49 #8
tak for hjælpen, det virker nu
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