21. september 2001 - 14:37Der er
6 kommentarer og 1 løsning
Paging et Recordset
Jeg har paget et recordset og når der er flere poster så udskriver den så mange tal som der er sider. Jeg vil gerne have den til at være en pil med funktion frem til næste, og så på side to skal man selvfølge lig også kunne komme tilbage... I får lige hel koden, så i kabn se sammenhængen..
Lars
<!-- #include file = include/placering.asp -->
<% \' Først finder vi ud af hvad vores paging side er på nu Page = Trim(Request(\"page\")) If Page = \"\" Then Page = 1
strGrp = Request.QueryString(\"grp\")
\' Vores SQL-forespørgsel vi ønsker page Sql = \"SELECT * FROM kort Where grp = \'\" & strGrp & \"\'\"
Set rs = Server.CreateObject(\"ADODB.Recordset\") rs.CursorType = adOpenStatic
rs.PageSize = 8 rs.Open(Sql), Conn, 1, 3
\' 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 %>
<table cellpadding=\"0\" cellspacing=\"5\" border=\"0\" height=\"100%\"> <tr> <td colspan=\"4\" height=\"10\" valign=\"top\"> <% If rs.PageCount <> 1 Then For i = 1 to rs.PageCount Response.Write \"<a href=\" & Chr(34) & \"default.asp?id=11&grp=larkana&page=\" & i & Chr(34) & \">\" & i & \"</a> \" Next <br><br></td> </tr> <% \' her laver vi en løkke der henter vores records ud While Not rs.EOF and rowCount < rs.PageSize
If counter=0 then Response.Write \"<tr valign=\'top\' align=\'left\'>\" End If
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Dette indsætteer << >> pile med link til forige/næste side. Du skal lige rette <a href=paging.asp?.....>¨så den passe med dit filnavn + parametre.
If Clng(Page) > 1 Then Response.Write \"<a href=paging.asp?page=\" & Page - 1 & \"><<</a>\" Else Response.Write \"<<\" End If
Response.Write \" \"
If Clng(Page) < Clng(rs.PageCount) Then Response.Write \"<a href=paging.asp?page=\" & Page + 1 & \">>></a> \" Else Response.Write \">>\" End If
mypage=request(\"whichpage\") If mypage=\"\" then mypage=1 end if mypagesize=request(\"pagesize\") If mypagesize=\"\" then mypagesize=30 end if mySQL=request(\"SQLquery\") IF mySQL=\"\" THEN mySQL=SQLtemp END IF
set rstemp=Server.CreateObject(\"ADODB.Recordset\") rstemp.cursorlocation=aduseclient rstemp.cachesize=5 tempSQL=lcase(mySQL) badquery=false IF instr(tempSQL,\"delete\")>0 THEN badquery=true END IF IF instr(tempSQL,\"insert\")>0 THEN badquery=true END IF IF instr(tempSQL,\"update\")>0 THEN badquery=true END IF If badquery=true THEN response.write \"Not a SELECT Statement<br>\" response.end END IF
rstemp.open mySQL,connectme rstemp.movefirst rstemp.pagesize=mypagesize maxpages=cint(rstemp.pagecount) maxrecs=cint(rstemp.pagesize) rstemp.absolutepage=mypage howmanyrecs=0 howmanyfields=rstemp.fields.count -1%> <table cellpadding=\'0\' cellspacing=\'0\' border=\'1\' bordercolor=\'#CFCFCF\'> <tr><td bgcolor=\'#CFCFCF\' colspan=<%=howmanyfields+1%>> Side <%=mypage%> af <%=maxpages%></td></tr> <tr><th colspan=<%=howmanyfields+1%>> <%=UCASE(mysql)%></th></tr> <tr> <% \'Put Headings On The Table of Field Names FOR i=0 to howmanyfields response.write \"<td bgcolor=\'#CFCFCF\'> <b>\" & rstemp(i).name & \"</b></td>\" NEXT response.write \"</tr>\"
\' Now loop through the data DO UNTIL rstemp.eof OR howmanyrecs>=maxrecs response.write \"<tr>\" FOR i = 0 to howmanyfields fieldvalue=rstemp(i) If isnull(fieldvalue) THEN fieldvalue=\"n/a\" END IF If trim(fieldvalue)=\"\" THEN fieldvalue=\" \" END IF response.write \"<td valign=\'top\'> \" response.write fieldvalue response.write \"</td>\" next response.write \"</tr>\" rstemp.movenext howmanyrecs=howmanyrecs+1 LOOP response.write \"</table><p>\"
\' close, destroy rstemp.close set rstemp=nothing
\' Now make the page _ of _ hyperlinks Call PageNavBar
sub PageNavBar() pad=\"\" scriptname=request.servervariables(\"script_name\") response.write \"<table cellpadding=\'0\' cellspacing=\'0\'><tr>\" response.write \"<td> \" if (mypage mod 20) = 0 then counterstart = mypage - 19 else counterstart = mypage - (mypage mod 20) + 1 end if counterend = counterstart + 19 if counterend > maxpages then counterend = maxpages if counterstart <> 1 then ref=\"<a href=\'\" & scriptname ref=ref & \"?whichpage=\" & 1 ref=ref & \"&pagesize=\" & mypagesize ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL) ref=ref & \"\'>Start</a> : \" Response.Write ref
ref=\"<a href=\'\" & scriptname ref=ref & \"?whichpage=\" & (counterstart - 1) ref=ref & \"&pagesize=\" & mypagesize ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL) ref=ref & \"\'>Forrige</a> \" Response.Write ref end if Response.Write \"[\" for counter=counterstart to counterend If counter>=20 then pad=\"\" end if if cstr(counter) <> mypage then ref=\"<a href=\'\" & scriptname ref=ref & \"?whichpage=\" & counter ref=ref & \"&pagesize=\" & mypagesize ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL) ref=ref & \"\'>\" & pad & counter & \"</a>\" else ref=\"<b>\" & pad & counter & \"</b>\" end if response.write ref if counter <> counterend then response.write \" \" next Response.Write \"]\" if counterend <> maxpages then ref=\" <a href=\'\" & scriptname ref=ref & \"?whichpage=\" & (counterend + 1) ref=ref & \"&pagesize=\" & mypagesize ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL) ref=ref & \"\'>Næste</a>\" Response.Write ref
ref=\" : <a href=\'\" & scriptname ref=ref & \"?whichpage=\" & maxpages ref=ref & \"&pagesize=\" & mypagesize ref=ref & \"&sqlQuery=\" & server.URLencode(mySQL) ref=ref & \"\'>Slut</a>\" Response.Write ref end if response.write \"<br></font>\" response.write \"</td>\" response.write \"</table>\" end sub %> </body> </html>
Webbe>> værsgo... jeg har ladet det \"unødvendige\" kode være men det kan du jo selv fjerne evt :-)
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.