asp程式設計入門:ado元件之分頁程式
1,rs.recordcount 很顯然,recordcount就是用來顯示資料庫表中一共多少條記錄的,也可以形象地說表中一共有多少行。經常用在分頁中就是一共有n篇文章等總計的資訊顯示。
2,rs.pagesize
rs.pagesize也就是一頁的大小,也就表示一張asp頁可以顯示記錄的條數。值是自己定義的,比如經常看到的每頁顯示n篇文章之類的資訊。
3,rs.absolutepage 和 rs.pagecount 說到分頁,一定不能不提到 rs.absolutepage 。記錄集的absolutepage屬性最主要的作用就是決定著當前顯示的是第幾頁。它的值是有依據的,指定了rs.pagesize,那麼rs.pagecount的資訊值就是rs.recordcount和rs.pagesize整除結果。比如:總資訊記錄rs.recordcount共20條,每頁顯示條數rs.pagesize設為5條,那麼頁數rs.pagecount數就是20/5=4頁次,而rs.absolutepage則就只能是第1頁,第2頁……第4頁。
說到現在,弄個具體程式來除錯一下。繼續對showit.asp進行修改如下:
<% set rs = server.createobject ("adodb.recordset")
sql = "select * from cnarticle order by cn_id desc"
rs.open sql,conn,1,1
%> <% page=request.querystring("page") 'page值為接受值
rs.pagesize = 2 '每頁顯示記錄數
rs.absolutepage = page '顯示當前頁等於接收的頁數 %> <%
for i = 1 to rs.pagesize '利用for next 迴圈依次讀出當前頁的記錄
if rs.eof then exit for end if
response.write("
文章內容是:"& rs("cn_content"))
rs.movenext next%> <%
rs.close set rs = nothing conn.close set conn=nothing %>
here,你除錯的前提就是資料庫中的記錄相對要大於4條,這樣測試效果才明顯;還有測試的方法就是在showit.asp後面新增?page=1或者?page=2等除錯觀察網頁顯示效果。
其實,說到底,顯示資料庫內容就是 <% for i = 1 to rs.pagesize
if rs.eof then exit for end if
response.write("
文章內容是:"& rs("cn_content")) rs.movenext next%>
起的作用,但想象一下:該程式應該都只能顯示出2條資訊(一直不變的2條資訊)。但為什麼加上?page=1和?page=2會顯示不同的結果呢?……那絕對就是rs.absolutepage的作用了。這個搞清楚,相信分頁的整體架構就有點眉目了。
<%
set rs = server.createobject ("adodb.recordset")
sql = "select * from cnarticle"
rs.open sql,conn,1,1 %>
<%filepath=request.servervariables("path_info")%>
<% page=request.querystring("page") 'page值為接受值
rs.pagesize = 2 '每頁顯示記錄數
if not isempty(page) then '如果page已經初始化...
if not isnumeric(page) then '判斷page值是否為數字
page=1 else page = cint(page) '接收page並化為數字型賦給page變數
end if if page > rs.pagecount then '如果接收的頁數大於總頁數
rs.absolutepage = rs.pagecount '設定當前顯示頁等於最後頁
elseif page <= 0 then '如果page小於等於0
rs.absolutepage = 1 '設定當前顯示頁等於第一頁
else rs.absolutepage = page '如果大於零,顯示當前頁等於接收的頁數
end if else rs.absolutepage=1
end if page = rs.absolutepage%> <%
for i = 1 to rs.pagesize '利用for next 迴圈依次讀出當前頁的記錄
if rs.eof then exit for end if
response.write("文章標題是:"& rs("cn_title"))
response.write("
文章作者是:"& rs("cn_author"))
response.write("
文章加入時間是:"& rs("cn_time"))
response.write("
文章內容是:"& rs("cn_content"))
response.write("") rs.movenext next %>
<% rs.close set rs = nothing conn.close set conn=nothing %>
長長的分頁**,搞懂是真不易,平台引用起來還需要修改也是比較麻煩。能做成乙個函式,下次呼叫起來就很方便了。
else response.write("[首頁] ")
end if if page>=pagecount then
response.write("[尾頁]")
end if response.write("[頁次:" & page & "/" & pagecount)
response.write("] [共" & resultcount & "條 "& pagesize & "條/頁]")
response.write(" 轉到" & "" & "頁") end function %>
如要引用,則可以:<%call pagination(rs.pagecount,rs.pagesize,page,rs.recordcount) %>
ASP程式設計入門高階(二十) ADO元件之分頁程式
1,rs.recordcount 很顯然,recordcount就是用來顯示資料庫表中一共多少條記錄的,也可以形象地說表中一共有多少行。經常用在分頁中就是一共有n篇文章等總計的資訊顯示。2,rs.pagesize rs.pagesize也就是一頁的大小,也就表示一張asp頁可以顯示記錄的條數。值是自...
DRF之分頁元件
rest framework提供了分頁的支援。我們可以在配置檔案中設定全域性的分頁方式,如 rest framework 也可通過自定義pagination類,來為檢視新增不同分頁行為。在檢視中通過pagination class屬性來指明。class largeresultssetpaginati...
Django元件之 分頁器
django自帶分頁器 paginator 用起來非常方便。怕自己寫的出bug,可以使用現成的 批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all...