Avatar billede da_darkside Nybegynder
21. juni 2005 - 22:24 Der er 9 kommentarer og
1 løsning

udtræk fra db over flere siden

Er der nogen af jer som kan give mig et tip til hvordan jeg kan dele eks 500 poster (udtræk) fra en db over flere sider i asp, med fx 50 poster pr side.

I ved som eks der findes i mange diskussions forummer
Avatar billede arne_v Ekspert
21. juni 2005 - 22:31 #1
altså hvordan du laver pageing ?
Avatar billede larsbachmanndk Nybegynder
21. juni 2005 - 22:32 #2
http://activedeveloper.dk/artikler/default.asp?articleid=31

Her er en god artikel til det du skal bruge
Avatar billede larsbachmanndk Nybegynder
21. juni 2005 - 22:34 #3
Her er koden tilpasset så den viser 50 per side:

<html><head>
<title>Paging af et recordset</title>
</head><body>

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

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT LinkURL FROM Links"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/dindatabase.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 50 ' her indstiller du antallet af visninger per side
  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
%>

</body></html>
Avatar billede da_darkside Nybegynder
21. juni 2005 - 22:34 #4
arne_v > Ja, lige netop. du ved hvor der kommer side 1 2 3 osv hvor man kan brownse de forskellige poster
Avatar billede da_darkside Nybegynder
21. juni 2005 - 22:42 #6
larsbachmanndk > Desværre, skal bruge en kode som er en smule mere optimeret, da det skal bruges til noget hvor jeg har over 100000 poster der kommer links fra 1 til 10000 sider nederst lidt for mange, fylder det halve af siden :(
Avatar billede larsbachmanndk Nybegynder
21. juni 2005 - 22:58 #7
kan man ikke løse det ved at fjerne sidetallene og nøjes med at have frem/tilbage links?
Avatar billede da_darkside Nybegynder
21. juni 2005 - 23:21 #8
prøver lige, men har lige et lille problem

har en åben connection i forvejen...

Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};User Id=admin;Password=;DBQ=" & Server.MapPath("testdb.mdb")

og laver... men det virker ikke

<html><head>
<title>Paging af et recordset</title>
</head><body>

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




Set rs = Server.CreateObject("ADODB.RecordSet")

Set Rs = myConn.Execute("SELECT ItemName FROM tblItem")

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("ItemName") & "<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
%>
Avatar billede da_darkside Nybegynder
21. juni 2005 - 23:58 #9
lig lige et svar arne_v
Avatar billede arne_v Ekspert
22. juni 2005 - 14:42 #10
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