ASP程式設計入門 ADO元件之分頁程式

2021-04-12 12:34:44 字數 3653 閱讀 6180

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...