28. november 2001 - 13:11Der er
10 kommentarer og 1 løsning
Paging og Request.Querystring
Jeg har en asp-side som lister filmkatekorier op, som ser sådan ud: <% Set myConn = Server.CreateObject(\"ADODB.Connection\") myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"Film.mdb\")
strSQL = \"SELECT * FROM Varegrupper\" set rs = myconn.execute(strSQL)
Do Id = rs(\"Id\") Varegruppe = rs(\"Varegruppe\") Varegruppebeskrivelse = rs(\"Varegruppebeskrivelse\")
rs.MoveNext Loop While Not rs.EOF myconn.Close Set myconn = Nothing %>
Denne har jeg så prøvet at kombinere med denne paging til selve filmene, men her går selvfølgelig noget galt når man trykke på linket til næste side. Dette sker selvfølgelig da Request.Querystring ikke får nogen værdi.
\"paging.asp\" : <!-- #include file=\"adovbs.inc\" --> <% \' Først finder vi ud af hvad vores paging side er på nu Page = Trim(Request(\"page\")) If Page = \"\" Then Page = 1
\' Standard DSNless connection til databasen db.mdb Set Con = Server.CreateObject(\"ADODB.Connection\") DBPath = \"DBQ=\" & server.mappath(\"Film.mdb\") Con.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath
\' Vores SQL-forespørgsel vi ønsker paget Sql = \"SELECT * FROM Film where Varegruppe_id=\" & Request.Querystring(\"Id\")
\' Så begynder det sjove - her sætter vi vores recordset op... \' Jeg vil ikke gennemgå alt hvad recordsetkoden gør. \' Kig evt. i en dokumentation hvis du ikke helt er med på hvad der er hvad... :-) Set rs = Server.CreateObject(\"ADODB.Recordset\") rs.CursorType = adOpenStatic
\' Hvor mange records vil have på hver side... her er den sat til 10 rs.PageSize = 10 rs.Open(Sql), Con
\' Her laver jeg et lille trick der gør at hvis ens forespørgsel er tom, \' så får man ikke en fejl If Not rs.EOF Then rs.AbsolutePage = cINT(Page) rowCount = 0 End If %> <html> <head> <title>Film</title> <% \' her laver vi en løkke der henter vores records ud While Not rs.EOF and rowCount < rs.PageSize Response.write rs(\"tittel\") Response.write \"<br>\" rowCount = rowCount + 1 rs.Movenext Wend
If rs.PageCount <> 1 Then For i = 1 to rs.PageCount response.write \"<a href=\"\"paging.asp?page=\" & i & \"\"\">\"& i &\"</a>\" Next End If %> </body> </html>
Er der nogle eksperter, som kan omskrive dette så det kommer til at virke...??
En anden ting er disse link til de næste sider, kan man lave dem således: <<prev. 1 2 3 next>>. Sådan som det virker nu står der bar 123, og så er der streg under dem alle. Jeg ville gerne have det sådan at der ikke var streg under den side man er på.
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
If rs.PageCount <> 1 Then For i = 1 to rs.PageCount If i = page Then Response.Write i Else response.write \"<a href=\"\"paging.asp?page=\" & i & \"\"\">\"& i &\"</a>\" End If Next End If
carpediem >> du mangler å sende over søkeparameteret..
prøv å bytt ut denne:
If rs.PageCount <> 1 Then For i = 1 to rs.PageCount response.write \"<a href=\"\"paging.asp?page=\" & i & \"\"\">\"& i &\"</a>\" Next End If
med denne:
If rs.PageCount <> 1 Then For i = 1 to rs.PageCount if( i = CInt( Page ) ) then response.write \"<b>\" & i & \"</b> else response.write \"<a href=\"\"paging.asp?page=\" & i & \"&Id=\" & Request.Querystring(\"Id\") & \"\"\">\"& i &\"</a>\" end if Next End If
if( CInt( Page ) > 1 ) then response.write \"<a href=\"\"paging.asp?page=\" & ( CInt(page) - 1 )& \"&Id=\" & Request.Querystring(\"Id\") & \"\"\"><< Previous</a> \" end if If rs.PageCount <> 1 Then For i = 1 to rs.PageCount if( i = CInt( Page ) ) then response.write \"<b>\" & i & \"</b> else response.write \"<a href=\"\"paging.asp?page=\" & i & \"&Id=\" & Request.Querystring(\"Id\") & \"\"\">\"& i &\"</a> \" end if Next End If
if( CInt( Page ) < rs.PageCount ) then response.write \"<a href=\"\"paging.asp?page=\" & ( CInt(page) + 1 )& \"&Id=\" & Request.Querystring(\"Id\") & \"\"\">Next >></a> \" end if
Hej Nute Jeg er ked af at sige det, men det virker altså ikke. Jeg har i øjeblikket kun 5 poster i min db hvis jeg laver det sådan at den kun viser 2 ad gangen, står der \"viser 1 til 2 af ialt 10\" Hvis jeg så trykker på next, skriver den \"Viser 11 til 4 av ialt 10\"
if( (Page * rs.PageSize) >= rs.RecordCount ) then tmpTo = rs.RecordCount else tmpTo = Page * rs.PageSize end if
Synes godt om
Ny brugerNybegynder
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.