asp分页奇怪问题
症状:rs=120条 如果每页显示10条或者10条以上 那么能从第1页翻倒12页
如果每页显示8条 分页就是15页 那么只能翻倒7页。 如果每页6条 那么只能翻倒10页。
函数:
Sub Pagination(objRS,Page_Size,PageUrl)
objRS.PageSize=Page_Size
objRS.AbsolutePage=Page
If PageUrl <> " " Then
PageUrl=PageUrl& " "
Else
PageUrl= "? "
End If
If Page <=1 Then
Response.Write "[首页][上一页] "
Else
Response.Write "[ <a href= ' "&PageUrl& "Page=1 '> 首页 </a> ] "
Response.Write "[ <a href= ' "&PageUrl& "Page= "&(Page-1)& " '> 上一页 </a> ] "
End If
If Page> =objRS.PageCount Then
Response.Write "[下一页][尾页] "
Else
Response.Write "[ <a href= ' "&PageUrl& "Page= "&(Page+1)& " '> 下一页 </a> ] "
Response.Write "[ <a href= ' "&PageUrl& "Page= "&objRS.PageCount& " '> 尾页 </a> ] "
End If
Response.Write "转到第 <input type= 'text ' name= 'page ' size= '3 ' maxlength= '5 ' value= ' " &Page & " ' onKeyPress= " "if (event.keyCode==13) window.location= ' " & PageUrl & "page= " & " '+this.value; " " '> 页 <input type= 'submit ' value= 'Enter '> "
Response.Write "[共 <Font color= 'Red '> <b> "&objRS.RecordCount& " </b> </Font> 条记录] "
Response.Write "[页 <Font color= 'Red '> "&Page& " </Font> / "&objRS.PageCount& "页] "
End Sub
调用
Call Pagination(rs,11, "ssyh.asp?buserid= "&id& "& ")
其中11就是每页显示条数。
[解决办法]
我一直用的分页
<%
SoFia_DbName= "jiaoyou " '修改此处为你的SQL Server 数据库名称
YourServer = "seven " '修改此处为你的Sql Server数据库地址
YourUid = "sa " '修改此处为你的数据库用户名
YourPassword = "struts " '修改此处为你的数据库密码
Connstr = "Driver={SQL Server};Server= "&YourServer& ";Uid= "&YourUid& ";Pwd= "&YourPassword& ";Database= "&SoFia_DbName
Set Conn=Server.CreateObject( "ADODB.CONNECTION ")
' On Error Resume Next
Conn.Open Connstr
If Err <> 0 Then
err.Clear
Set Conn = Nothing
Response.Write " <div align=center> <br> <br> <br> 连接SqlServer数据库出错,请检查相关设置…… </div> "
Response.End
End If
set rs = server.CreateObject( "adodb.recordset ")
rs.open "select * from userInfo order by id desc ",conn,1,1
if not(rs.Eof and rs.Bof) Then
page = trim(request.form( "page "))
if page = " " then page = trim(request.QueryString( "page "))
if Not(IsNumeric(page)) or page = "0 " then page = 1
rs.pageSize = 30 '设置每页的个数
strFile = "? " '设置当前页面的名称
pageCount = rs.pageCount
if len(page) > 4 then page = pageCount
if Cint(page) > Cint(pageCount) then page = pageCount
rs.absolutepage = page
for i = 1 to rs.pagesize
if rs.eof then exit for
Response.Write (Rs( "username ")& " <br> ")&VbNewline
rs.MoveNext
Next 'i
End if%>
<%
Response.Write ( " <table border=0 align=center cellpadding=6 cellspacing=0> <Form name= 'changepage ' method= 'post ' action= ' "&StrFile& " '> <tr> <td> ")&VbNewline
If pagecount < 1 Then pagecount = 1
Response.Write ( "第 "&page& "页/共 "&PAGECOUNT& "页,每页 "&Rs.pageSize& "条/共 "&Rs.recordCount& "条记录 </td> <td> ")
beginpage = 1
Endpage = CInt(pagecount)
page = CInt(page)
If pagecount > = 9 Then
If page > = 5 Then
beginpage = page - 4
If page <= (pagecount - 4) Then
Endpage = page + 4
Else
Endpage = pagecount
beginpage = pagecount - 4
End If
Else
beginpage = 1
Endpage = 9
End If
End If
If beginpage> 1 Then Response.write " <a title=首页 href= ' "&StrFile&logpage& " '> <font face=webdings> 9 </font> </a> "
For j = beginpage to Endpage
If j = page Then
Response.write "[ <b> "&j& " </b> ] "&VbNewline
Else
Response.write "[ <a href= ' "&StrFile& "page= "&j&logpage& " '> "&j& " </a> ] "&VbNewline
End If
next
If Endpage < pagecount Then Response.write ( " <a title=末页 href= ' "&StrFile& "page= "&pagecount&logpage& " '> <font face=webdings> : </font> </a> ")&Vbnewline
Response.Write ( " </td> <td align= 'right '> ")&VbNewline
Response.Write ( " <select name= " "page " " onchange= " "document.changepage.submit(); " "> ")&VbNewline
For i=0 To pagecount
If i <> pagecount Then
Response.Write ( " <option value= ' "&i+1& " ' ")
If page=i+1 Then Response.Write ( " selected ")
Response.Write ( "> 转到第 "&i+1& "页 </option> ")&VbNewline
End If
Next
Response.Write ( " </select> </td> </tr> </Form> </table> ")
rs.close
set rs = nothing
%>