webForumDet fria alternativet

Föregående- och nästa sida-länkar i Vides paging?

ASP

11 svar · 287 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#1

Jag skulle vilja ha två pilar åt vardera hållen som tar en till föregående eller nästa sida när jag "pagar" ut ett recordset, men det står still i huvudet och jag tänkte att det kanske redan finns färdig kod för detta som jag kan kolla på.

Jag försökte med "rsExempel.AbsolutePage - 1" o.s.v. men det fungerade inte speciellt bra, och jag vill inte ha någon länk till sidan 1 när jag befinner mig på sida 1 etc.

------------------
// Skarre

Medlem sedan dec. 200012 464 inlägg
#2

Du kan ju titta på iceM2s trådar om paging lite längre ner. Annars så får du visa lite kod. (Det finns väl någon hantering i den ursprungliga koden?)

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 19998 577 inlägg
#3

Jag har lagt till en liten samling med funktioner för navigering:
http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_17.asp#advnavigation

------------------
Mostly Harmless

Medlem sedan apr. 20012 427 inlägg
#4

Det tackar vi för. :)

------------------
// Skarre

Medlem sedan mars 20002 836 inlägg
#5

Vide:
dessa funkar bara om default (i.e: default.asp, index.asp) sidan anropas och om IIS körs på en win2k server.

cya,
PatrikB

------------------
'## -- second place is the first looser -- ##'

Medlem sedan apr. 20012 427 inlägg
#6

Skulle du kunna utveckla det där, Patrik?

------------------
// Skarre

Medlem sedan dec. 19998 577 inlägg
#7

Det fungerar på vilka filer som helst under NT5, jag har inte testat på äldre versioner.

Har du testat på en NT4 Patrik?

------------------
Mostly Harmless

Medlem sedan apr. 20012 427 inlägg
#8

Jag förstår fortfarande inte vad ni talar om. Exakt vad är det som inte fungerar och vilka "filer" pratar ni om?

------------------
// Skarre

Medlem sedan mars 2001243 inlägg
#9

Ta gärna en titt på den här pagingen med getrows. Har fått hjälp av PatrikB sedan har jag även laggt till lite andra funktioner för säkrare körning av scriptet! Det här scriptet fungerar perfekt för mig i allla fall!

<%
Dim intPage, intPageSize, N, varArray, intTotalPages

intPage = Request.QueryString("page")
'Här har jag även lagt till så att endast numeriska värden tillåts i querystringen page
If NOT IsNumeric(intPage) OR Len(intPage) = 0 Then intPage = 1
'välj hur många poster per sida som ska visas!
intPageSize = 5

'Välj vad du vill hämta med SQL
strSQL = "SELECT Datum, Namn, Email, OrtStad, Kommentar, IPnummer FROM Gastbok " &_
" ORDER BY ID DESC"

'Skapa DB-koppling, jag gör det via en funktion, går på annat vis oxå 
dbConnect dbUrl, Connection
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.PageSize = intPageSize
objRS.Open strSQL, Connection, 1, 3
intTotalPages = objRS.PageCount

'Om sidvärdet i QueryStringen är större än det total värdet av sidor
'som finns gör då om värdet till ett för att slippa felmeddelanden
If intPage - 1 >= intTotalPages Then 
intPage = 1
End If

If Not objRS.EOF Then
objRS.AbsolutePage = intPage
varArray = objRS.GetRows(intPageSize)
End If

objRS.Close
Set objRS = Nothing
Connection.Close
Set Connection = Nothing

If intTotalPages = 0 Then
Response.Write "Visar sida " & intPage & "/1 i gästboken.<BR><BR>" & vbCRLF
Else
Response.Write "Visar sida " & intPage & "/" & intTotalPages & " i gästboken.<BR><BR>" & vbCRLF
End If
Response.Write "<img src=gif/linje_red.gif height=3 width=400><BR><BR>" & vbCRLF

If IsArray(varArray) Then
Dim strNamn, strEmail, strOrtStad, strKommentar, strDatum, strIPnummer
For N = 0 TO UBound(varArray,2)
strDatum = varArray(0,N)
strNamn = varArray(1,N)
strEmail = varArray(2,N)
strOrtStad = varArray(3,N)
strKommentar = varArray(4,N)
strKommentar = Replace(strKommentar, vbCRLF, "<BR>")
strIPnummer = varArray(5,N)

Response.Write _
"<table width=""400"" border=""0"" cellspacing=""0"" cellpadding=""0"">" & vbCRLF &_
"<tr>" & vbCRLF &_
"<td align=""left"" valign=""top"" width=""60%"">" & vbCRLF &_
"<B><A href=""mailto:" & strEmail & """ class=""blacklink"">" & strNamn & "</A></B><BR>" & vbCRLF &_
"Ort/Stad: " & strOrtStad & vbCRLF &_
"</td>" & vbCRLF &_
"<td align=""right"" valign=""top"" width=""40%"">" & vbCRLF &_
strDatum & "<BR>" & vbCRLF &_
"<FONT COLOR=""#333333"">IP: " & strIPnummer & "</FONT>" & vbCRLF &_
"</td>" & vbCRLF &_
"</tr>" & vbCRLF &_
"</table><BR>" & vbCRLF &_
strKommentar & vbCRLF &_
"<BR><BR><img src=""gif/linje_red.gif"" height=""3"" width=""400""><BR><BR>" & vbCRLF & vbCRLF
Next
End If

Response.Write _
"<table width=""400"" border=""0"" cellspacing=""0"" cellpadding=""0"">" & vbCRLF &_
"<tr>" & vbCRLF &_
"<td align=""left"" valign=""top"" width=""60%"">" & vbCRLF
If CLng(intPage) > 1 Then
Response.Write _
"<img src=""gif/pil_red2.gif""> " & vbCRLF &_
"<a class=""darkredlink"" href=""" & Request.ServerVariables("SCRIPT_NAME") &_
"?page=" & intPage - 1 & """>Föregående</A> " & vbCRLF
Else
Response.Write " "
End If
Response.Write _
"</td>" & vbCRLF &_
"<td align=""right"" valign=""top"" width=""40%"">" & vbCRLF
If CLng(intPage) < CLng(intTotalPages) Then
Response.Write _
"<a class=""darkredlink"" href=""" & Request.ServerVariables("SCRIPT_NAME") &_ 
"?page=" & intPage + 1 & """>Nästa</A> " & vbCRLF &_
" <img src=""gif/pil_red.gif"">" & vbCRLF
Else
Response.Write " "
End if
Response.Write _
"</td>" & vbCRLF &_
"</tr>" & vbCRLF &_
"</table>" & vbCRLF
%>

Jag skulle även uppskatta om någon här kunde hjälpa mig med att visa hur jag ska räkna totalt antal poster i Databasen på smidigaste sätt!

------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)

[Redigerat av iceM2 den 04 dec 2001]

Medlem sedan mars 20002 836 inlägg
#10

vide:
Fel av mig.
det var av länkar med typen:
<A href="/folder/?page=1>länk</A>

sorry ... funka nu när jag testade ... :e

cya,
PatrikB

------------------
'## -- second place is the first looser -- ##'

[Redigerat av PatrikB den 04 dec 2001]

Medlem sedan mars 20002 836 inlägg
#11

iceM2:
ta bort alla vbcrlf som du skriver ut. finns ingen anledning mer än att koden ser fin och strukturerad ut när någon väljer att visa källa. Browsern laddar sidan bra mycket fortare utan alla dessa vbcrlf, tabbar m.m. Det är till och med så att man kan minska storleken på sidan (html'en som skickas) med upp till 50%. Att all HTML kommer på en och samma rad spelar ingen som helst roll för browsern

cya,
PatrikB

------------------
'## -- second place is the first looser -- ##'

Medlem sedan mars 2001243 inlägg
#12

okej Patrik jag följer ditt råd! Var precis den anledningen till att jag använde vbCRLF ska ta bort detta... Trodde inte det skulle vara så märkbart för prestandan... Sedan är det ju att ha onödigt strukturerad källkod...(alltså om man som Patrik säger tar visa källa i browsern)

Men att använda Response.Write _ (fortsättningstecken) måste väl vara bra prestandamässigt?

------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)

[Redigerat av iceM2 den 04 dec 2001]

251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)