webForumDet fria alternativet

Pagin...

ASP

22 svar · 517 visningar · startad av nybörjare

Medlem sedan nov. 200178 inlägg
Frågan#1

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
%> 

&nbsp;<%=fldcount%>

<%
end if 
next
end if
%>

:birp

Medlem sedan mars 20002 836 inlägg
#2

.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

Medlem sedan nov. 200178 inlägg
#3

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

Medlem sedan juli 20003 825 inlägg
#4

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??

Medlem sedan nov. 200178 inlägg
#5

Eclipse >> det är juh bara en smak sak hur man vill vissa det på sin sida :)

Medlem sedan nov. 200178 inlägg
#6

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

Medlem sedan juli 20003 825 inlägg
#7

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! :-)

Medlem sedan juni 20003 076 inlägg
#8

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!!!

Medlem sedan nov. 200178 inlägg
#9

Då var det väll bara att tacka :)

Fortsatt trevlig dag :birp

Medlem sedan juli 20003 825 inlägg
#10

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
Medlem sedan juni 200032 967 inlägg
#11

Har du månne glömt att inkludera adovbs.inc(där ado-konstanterna definieras) på sidan?

Mvh,

Medlem sedan juli 20003 825 inlägg
#12

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...

Medlem sedan juni 200032 967 inlägg
#13

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,

Medlem sedan juli 20003 825 inlägg
#14

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...

Medlem sedan juli 20003 825 inlägg
#15

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]
' ---------------------------------------------------'
Medlem sedan juni 20019 024 inlägg
#16

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

Medlem sedan juli 20003 825 inlägg
#17

Tack så mycket!

Vid en första titt verkade dina klaser jättebra! Äntligen vettig kod för detta! :-)

Medlem sedan juli 20003 825 inlägg
#18

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") & "?"
Medlem sedan juli 20003 825 inlägg
#19

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! :-)

Medlem sedan juni 20019 024 inlägg
#20

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().

274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)