.AbsolutePage talar om vilken "sida" i recordsetet som ska visas, dvs, recordsetet sätter sin "markör" på den sidans första post.
cya,
PatrikB
22 svar · 517 visningar · startad av nybörjare
Hejsan. ja vet att det finns mycket inlägg med pagin men ja har faktiskt inte problem med det uttan ja vill bara veta hur det är uppbyggt t.ex. vad vissa saker göra :)
I bland ser man jätte långa koder med pagin sedan hittade ja denna koden som fungerar jätte bra men inte är alls stor och nu undrar ja om man kan göra ett pagin script på massa olika sätt och kan någon snäll själ gå igenom denna koden och förklara lite lätt vad de olika delarna gör :)
De vanliga databas koplingarna fattar ja men t.ex fattar ja ej :l
RecSet.AbsolutePage = pagecount
<%
pagecount = TRIM( Request( "pagecount" ) )
if pagecount = "" THEN pagecount = 1
file = Server.MapPath("databas.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& file
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM TABELL ORDER BY ID DESC"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
If RecSet.EOF then
Response.write "Inget här inte"
End if
RecSet.PageSize = 1
RecSet.AbsolutePage = pagecount
Do until RecSet.EOF OR rowCount > RecSet.PageSize
rowCount = rowCount + 1
%>
<%=RecSet("KOLUMN")%>
<%
RecSet.MoveNext
loop
if RecSet.PageCount > 1 THEN
for fldcount = 1 to RecSet.PageCount
if fldcount <> cINT( pagecount ) THEN
response.Write "<a href='sida.asp?pagecount="& fldcount &"'>"& fldcount &"</a>"
else
%>
<%=fldcount%>
<%
end if
next
end if
%>
:birp
.AbsolutePage talar om vilken "sida" i recordsetet som ska visas, dvs, recordsetet sätter sin "markör" på den sidans första post.
cya,
PatrikB
Tack :) men vad beryder t.ex.
cINT( pagecount )
Och rowCount måste väll varra en varial men vad har den för värde den och fldcount ser ja inte var den får något värde eller ja har fel för mig?
Mvh
I din kod ovan ser det ut att vara varje post som listas en och en. Normalt vill man ha kanske 10, 15 eller 20 poster åt gången?? Eller??
Eclipse >> det är juh bara en smak sak hur man vill vissa det på sin sida :)
Ingen som kan förklara för mig?
Tack men vad beryder t.ex.
cINT( pagecount )
Och rowCount måste väll varra en varial men vad har den för värde den och fldcount ser ja inte var den får något värde eller ja har fel för mig?
Mvh
Eller alla kanske är i skolan/ på jobbet nu :birp
Cint = convert to intiger
trim = tar bort alla mellanslag före och efter.
---
pagecount = TRIM( Request( "pagecount" ) )
tar bort alla mellanslag
if fldcount <> cINT( pagecount ) THEN
ser till att det verkligen är ett tal, annars fungerar inte IF satsen. Det är faktiskt så att request("myNumber") är strängen 23 medans CInt(request("myNumber")) blir talet 23.
I kodsammanhang är det skillnad! :-)
pagecount talar om vilken sida du är på (sida.asp?pagecount=3)t.ex.
du tar antalet poster och delar med 'pagesize' och får då antalet sidor, dessa listas sedan längst ner med en tillhörande länk.
i pagesize kan du alltså välja hur många poster som skall synas på varje sida.
jag lämnar ingen garanti för att jag har rätt men jag tror det!!!
Vad betyder detta?
ADODB.Recordset error '800a0bb9'
The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another.
/pageing.asp, line 40
40 är sista raden.
----
Set Connect = Server.CreateObject("ADODB.Connection")
'Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\Data\cpoint.mdb")
Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\Data\cpoint.mdb"))
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM [users] ORDER BY ID DESC;"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
Suck!
Ja,ja... men man kan väl använda siffrorna i stället??
Usch... måste man verkligen använda detta super jobbiga sätt?? Kan man inte fuska??
Jag minns att du sa till mig en gång för länge sen... men tiderna förändras?? Det var före Office 2000-tiden.
Det här tar fan emot...
Jo, man kan självklart använda siffrorna istället för att inkludera monsterfilen adovbs.inc.
Om det finns enklare sätt; ingen aning. Du kan ju alltid kika i wFs scriptarkiv (jag tror mig minnas att PatrikB gjort ett pagingscript där man använder GetRows()), men det är möjligt att uppladdade script fortfarande är galet länkade...
Mvh,
OK...
Nej, jag VÄGRAR inkludera den filen bara för två siffrors skull!
Eudora 4 Attachment/adovbs.inc
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
Devphiles never goes out of style
mvh,
/ Killen som aldrig tömmer sin dator...
Vilket fynd!
' ---------------------------------------------------
' The full complete constantfile
' for
' ActiveX Data Object Version 2.1
'
' Written by
' Andreas Kviby
' Devphiles AB, Sweden
'
' [url]http://www.devphiles.com[/url]
'
' Send your comments to
' [email]andreas.kviby@devphiles.com[/email]
' ---------------------------------------------------'
Paging script
Jag har lagt upp ett pagingscript på wf script som använder classer tillsammans med matriser.
http://webforum.aleborg.com/forum/showthread.php?s=&threadid=38096
Tack så mycket!
Vid en första titt verkade dina klaser jättebra! Äntligen vettig kod för detta! :-)
Feedback
Right on target! Får man lov att föreslå följande ändring i "exempel1.asp"?
' Skapa nytt objekt av class.
Set Pager = New clsPacePager
' Ladda in matris till class. Ange även poster/sida samt URL.
Pager.Load arrRecords, 5, request.serverVariables("PATH_INFO") & "?"
Jag undrar stillsamt om du inte glömt att stänga databaskopplingen i det andra exemplet?
Eftersom du är så nogrann i allt det andra du gjort så vågar jag knappt fråga!
Dokumentationen var ju grym! :-)
Hehe, kul att du gillar den!
Right on target! Får man lov att föreslå följande ändring i "exempel1.asp"?
' Skapa nytt objekt av class. Set Pager = New clsPacePager ' Ladda in matris till class. Ange även poster/sida samt URL. Pager.Load arrRecords, 5, request.serverVariables("PATH_INFO") & "?"
Nja, eftersom QueryStringen "page" läggs till av classen själv så är det bäst att ange statiska QueryStrings, men själva filnamnet går alltid bra att använda PATH_INFO eller SCRIPT_NAME till.
Jag undrar stillsamt om du inte glömt att stänga databaskopplingen i det andra exemplet?
Eftersom du är så nogrann i allt det andra du gjort så vågar jag knappt fråga!
Det är det som är det fina med clsPaceDBconn - däri finns en funktion som heter GetRows() som hämtar data till en matris med endast en kodrad! Alltså, den både öppnar, hämtar och därefter stänger databasen. Exempel:
arrRecords = GetRows("driver=MySQL;database=testdb", "SELECT * FROM tabell")
.
Likadant är det med funktionen Execute().