<table width="760" border="0" align="center" cellpadding="0" cellspacing="0"> <% dim tid,title,ttine,comment,i i=0 set crs=server.createobject("adodb.recordset") sql="select * from news where classid="&classid&" order by id desc" crs.open sql,conn,1,1 if counts=0 or counts="" then counts=10 '每页新闻条数 crs.pageSize = counts '每页记录数 allpages = crs.pageCount classid=request("classid") '总页数 page = Request("page") '从浏览器取得当前页 If not isNumeric(page) then page=1 'page不是数字 if isEmpty(page) or Cint(page) < 1 then 'page 为空或小于1 page = 1 elseif Cint(page) >= allPages then 'page 值大于总页数 page = allPages end if crs.AbsolutePage = page do while not crs.eof i=i+1 temp=CRS.RecordCount-(page-1)*crs.pageSize-I+1 tid=crs("id") title=crs("title") comment=crs("comment") ttime=crs("time") %> <tr> <td height="100" class="h" id="cd"><%response.write"<li><a class=red href=shownews.asp?titleid="&tid&">"&left(""&title&"",11)&"</a><br>"&left(""&comment&"",70)&"..."%></td> <td width="150" height="100" align="right" id="cd2"><%=ttime%></td> </tr> <% counts = counts - 1 crs.movenext if i>=10 or crs.eof then exit do loop %> </table> <table width="760" height="25" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="30" align="right"><% '显示总留言条数 response.write "<br> 总计新闻"&CRS.RecordCount&"条 " if page = 1 then '到达第一页 response.write "<font color=darkgray>首页 前页</font>" else '不是第一页 'request.ServerVariable("script_name") 获得程序的虚拟路径 response.write "<a href="&request.ServerVariables("script_name")&"?classid="&classid&"&page=1>首页</a><a href="&request.ServerVariables("script_name")&"?classid="&classid&"&page="&page-1&">前页</a>" end if if page = allpages then '到达最后一页 response.write "<font color=darkgray> 下页 末页</font>" else '不是最后一页 '建立超级链接 response.write " <a href="&request.ServerVariables("script_name")&"?classid="&classid&"&page="&page+1&">下页</a> <a href="&request.ServerVariables("script_name")&"?classid="&classid&"&page="&allpages&">末页</a>" end if '显示留言当前的页数信息 response.write " 第"&page&"页 共"&allpages&"页 " %> </td> </tr> </table>
我自己用的,没怎么考虑效率。 代码: <% '================================================================' ' 列表数据 '================================================================' Sub ListData() Dim intAbsolutePage, intPageSize, intRecordCount, intPageCount, i ' 分页部分 i = 0 ' PageSize 考虑使用 Cookies 记录 intAbsolutePage = CID(Request.QueryString("Page")) intPageSize = CID(Request.QueryString("PageSize")) If intAbsolutePage = 0 Then intAbsolutePage = 1 If intPageSize = 0 Or intPageSize > 100 Then intPageSize = 20 'intRecordCount = conn.Execute("SELECT * FROM Union_User;")(0) Dim rs, sql Set rs = Server.CreateObject("ADODB.Recordset") sql = "SELECT [NewsID], [NewsTitle], [NewsDate FROM [News] ORDER BY [NewsID] DESC;" rs.Open sql, conn, 1, 1, 1 intRecordCount = rs.RecordCount rs.PageSize = intPageSize intPageCount = rs.PageCount 'If intRecordCount Mod intPageSize = 0 Then ' intPageCount = intRecordCount / intPageSize 'Else ' intPageCount = Int(intRecordCount / intPageSize) + 1 'End If If intAbsolutePage > intPageCount Then intAbsolutePage = intPageCount If intRecordCount > 0 Then 'rs.AbsolutePosition = rs.AbsolutePosition + ((Abs(intAbsolutePage) - 1) * intPageSize) rs.AbsolutePage = intAbsolutePage Response.Write("<table width=""100%"" cellpadding=""2"" cellspacing=""1"" border=""0"" class=""border"">" & vbCrLf) Response.Write("<tr bgcolor=""#A4B6D7"">" & vbCrLf) Response.Write("<th width=""100"">标题</th>" & vbCrLf) Response.Write("<th>日期</th>" & vbCrLf) Response.Write("<th width=""80"">操作</th>" & vbCrLf) Response.Write("</tr>" & vbCrLf) Else Response.Write("<p>没有找到符合要求的记录。</p>" & vbCrLf & "<p> </p>" & vbCrLf) End If Do While Not rs.BOF And Not rs.EOF And i < intPageSize Response.Write("<tr>" & vbCrLf) Response.Write(" <td align=""left"" class=""tdbg""><a href="news.asp?NewsID=" & rs("NewsID") & """>" & rs("NewsTitle") & "</a></td>") Response.Write("<td align=""center""" & rs("NewsDate") & "</td>" & vbCrLf) Response.Write(" <td align=""center"" class=""tdbg"">" & rs("UnionID") & "</td>" & vbCrLf) Response.Write("</tr>" & vbCrLf) i = i + 1 rs.MoveNext Loop If intRecordCount > 0 Then Response.Write("</table>") rs.Close Set rs = Nothing Call SpitPages("?", intAbsolutePage, intPageSize, intRecordCount, intPageCount) End Sub '================================================================' ' 列表分页 '================================================================' Sub SpitPages(strURL, intAbsolutePage, intPageSize, intRecordCount, intPageCount) If intPageCount <= 0 Or intRecordCount <= 0 Then Exit Sub Dim intLoop If intAbsolutePage > intPageCount Then intAbsolutePage = intPageCount Response.Write("<p id=""pages"">") Response.Write("页码:" & intAbsolutePage & "/" & intPageCount & " 每页" & intPageSize & "(<a href=""" & strURL & "Page=" & intAbsolutePage & "&PageSize=10"">10</a>/<a href=""" & strURL & "Page=" & intAbsolutePage & "&PageSize=20"">20</a>/<a href=""" & strURL & "Page=" & intAbsolutePage & "&PageSize=50"">50</a>/<a href=""" & strURL & "Page=" & intAbsolutePage & "&PageSize=100"">100</a>)条记录 共" & intRecordCount & "条记录") Response.Write(" ") If intAbsolutePage > 1 Then Response.Write("<a href=""" & strURL & "Page=1&PageSize=" & intPageSize & """>首页</a> ") Response.Write("<a href=""" & strURL & "Page=" & intAbsolutePage - 1 & "&PageSize=" & intPageSize & """>上一页</a> ") Else Response.Write("首页 ") Response.Write("上一页 ") End If ' 本页之前两页 For intLoop = intAbsolutePage - 2 To intAbsolutePage - 1 If intLoop > 0 Then Response.Write("[<a href=""" & strURL & "Page="& intLoop & "&PageSize=" & intPageSize & """>" & intLoop & "</a>] ") End If Next ' 当前页 Response.Write("<a href=""" & strURL & "Page=" & intAbsolutePage & "&PageSize=" & intPageSize & """ class=""currentpage"">" & intAbsolutePage & "</a> ") For intLoop = intAbsolutePage + 1 To intAbsolutePage + 2 If intLoop < intPageCount Then Response.Write("[<a href=""" & strURL & "Page="& intLoop & "&PageSize=" & intPageSize & """>" & intLoop & "</a>] ") End If Next If intAbsolutePage < intPageCount Then Response.Write("<a href=""" & strURL & "Page=" & intAbsolutePage + 1 & "&PageSize=" & intPageSize & """>下一页</a> ") Response.Write("<a href=""" & strURL & "Page=" & intPageCount & "&PageSize=" & intPageSize & """>末页</a> ") Else Response.Write("下一页 ") Response.Write("末页 ") End If Response.Write(" ") ' 跳转 Response.Write("跳转到:第<input name=""page"" type=""input"" id=""page"" size=""4"" value=""" & intAbsolutePage & """ onmouseover=""this.select();"" onchange=""if (!isNaN(this.value)) {location.href = '" & strURL & "Page=' + this.value + '&PageSize=" & intPageSize & "';};"" onkeydown=""if(event.keyCode == 13 && !isNaN(this.value) && this.focus) {location.href = '" & strURL & "Page=' + this.value + '&PageSize=" & intPageSize & "';};"" />页") Response.Write("</p>" & vbCrLf) End Sub '================================================================' ' 强制转换正整数 '================================================================' Function CID(strS) ' 转换为有效的 ID ' 返回值类型:Integer (>=0) Dim intI intI = 0 If IsNull(strS) Or strS = "" Then intI = 0 Else If Not IsNumeric(strS) Then intI = 0 Else Dim intk On Error Resume Next intk = Abs(Clng(strS)) If Err.Number = 6 Then intk = 0 ''数据溢出 Err.Clear intI = intk End If End If CID = intI End Function
我这儿有个ASP的分页程序,是我自己写的,我觉得还是比较通用的,你看看行不行,下面是地址 http://www.9ychina.com/wenzhangneirong.asp?id=208&page=1 如果有什么具体要求请在网站的下面点击“在线留言”告诉我。