多條記錄集如何實現分頁啊?

<%
Sub ChangePage(url)
'讀取通用JavaScript腳本代碼
Response.Write "<script language=javascript src=JS/inc.js></script>"
'如果沒有頁碼輸入,則當前頁默認爲第一頁,否則當前頁爲輸入的頁碼
If Request("CurrentPage")="" Or IsNumeric(Request("CurrentPage"))=False Then
objRS.AbsolutePage=1
Else
objRS.AbsolutePage=CLng(Request("CurrentPage"))
End If
'頁碼跳轉的表單
Response.Write "<form method=Get name=MyForm>"
If objRS.PageCount=1 then
Response.Write("[第一頁] [上一頁] [下一頁] [最後一頁] ")
Else
If objRS.AbsolutePage=1 then
Response.Write("[第一頁] [上一頁] ")
Response.Write("[<a href=javascript:PageNext()>下一頁</a>] ")
Response.Write("[<a href=javascript:PageLast()>最後一頁</a>] ")
Else
If objRS.AbsolutePage=objRS.PageCount then
Response.Write("[<a href=javascript:PageFirst()>第一頁</a>] ")
Response.Write("[<a href=javascript:PagePrior()>上一頁</a>] ")
Response.Write("[下一頁] [最後一頁] ")
Else
Response.Write("[<a href=javascript:PageFirst()>第一頁</a>] ")
Response.Write("[<a href=javascript:PagePrior()>上一頁</a>] ")
Response.Write("[<a href=javascript:PageNext()>下一頁</a>] ")
Response.Write("[<a href=javascript:PageLast()>最後一頁</a>] ")
End If
End If
End If

'創建下拉列表框,用於選擇瀏覽頁碼
Response.Write("第<select size=1 name=CurrentPage onchange=PageCurrent('"&url&"')>")   
For i=1 to objRS.PageCount
If objRS.AbsolutePage=i then
Response.Write("<option selected>"&i&"</option>")  '當前頁碼
Else
Response.Write("<option>"&i&"</option>")
End If 
Next
Response.Write("</select>頁&nbsp;")
End Sub
%>

pagesize=分頁中記錄條數

 

<!--#include file="conn.asp"-->
<%
sql="select id,title form table order by id desc"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
RS.pagesize=15  '每頁記錄數
page=cint(request("page"))
   if page=""  or page=0  then
    page=1
   else
    page=page
   end if
rs.absolutepage=page
for i=1 to rs.pagesize
   if rs.bof or rs.eof then
   exit for
   end if
%>
<P><%=rs("id")%>&nbsp;<%=rs("title")%></P>
<%
rs.movenext
next
%><br/>
<p>總共有 <font color="#FF0000"><%=rs.recordcount%></font> 條記錄
          <%         
   If Page <= 1 Then               
      Response.Write "首頁&nbsp; 上一頁&nbsp; "                      
   End If  
   If Page > 1 Then               
      Response.Write "<A HREF=photo.asp?Page=1>首頁</A> "               
      Response.Write "<A HREF=photo.asp?Page=" & (Page-1) & ">上一頁</A> "               
   End If               
   If Page < RS.PageCount Then               
      Response.Write "<A HREF=photo.asp?Page=" & (Page+1) & ">下一頁</A> "               
      Response.Write "<A HREF=photo.asp?Page=" & RS.PageCount & ">末頁</A> "               
   End If
   If Page >= RS.PageCount Then               
      Response.Write "下一頁&nbsp; 末頁&nbsp; "                          
   End If      
%>
<select name="Page" size="1" onchange="window.location.href=this.value" class="user">
          <%For j=1 to rs.pagecount%>
          <option value="photo.asp?page=<%=j%>"<%if j=Page then%>selected<%end if%>><%=j%></option>
          <%Next%>
        </select> 第<%=Page%>頁/共<%=RS.PageCount%>頁</P>

 完整存儲過程分頁

 

面的SET ROWCOUNT n語句:
declare @pagesize int --每頁紀錄數
declare @reccounts int --數據庫總的紀錄數
declare @pagecounts int --根據每頁紀錄數和數據庫總的紀錄數返回的總頁數
declare @intBeginID int --特定頁的第一條(最小)紀錄
declare @intRowCount int --臨時變量
declare @currentpage int --當前頁

select @pagesize=10 --每頁10條紀錄
select @currentpage=5 --設置當前頁
select @reccounts=count(1) from Procurement_Requisition --返回所有紀錄數
if @reccounts/@pagesize*@pagesize=@reccounts
set @pagecounts=@reccounts/@pagesize --返回總頁數
else
set @pagecounts=@reccounts/@pagesize+1 --返回總頁數

set @intRowCount=(@currentpage-1)*@pagesize+1 --特定頁的第一條(最小)紀錄在所有紀錄中的位置(使用了order by)

SET ROWCOUNT @intRowCount
select @intBeginID=pr_no from Procurement_Requisition order by pr_no

SET ROWCOUNT @pagesize
print @intBeginID
select * from Procurement_Requisition where pr_NO>=@intBeginID order by pr_no

SET ROWCOUNT 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章