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
11 svar · 287 visningar · startad av Skarre
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
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
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
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 -- ##'
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
Jag förstår fortfarande inte vad ni talar om. Exakt vad är det som inte fungerar och vilka "filer" pratar ni om?
------------------
// Skarre
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]
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]
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 -- ##'
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]