近段時間看了一些論壇上面關於分頁的ASP程序依然有許多的關注者但裡面只有代碼沒有詳細的解釋對於初學者來說這樣總是得不到真正的掌握此次我將針對分頁技術進行詳解讓大家來理解ASP分頁好了一起來對分頁程序來次透徹的了解吧!
首先來看看效果 !
看看功能分頁程序首先讀取每頁預置的記錄條數在此是條其它將在下頁中顯示同時提示當前頁數總頁數總記錄數當顯示的頁數為第一頁時首頁上一頁鏈接失效當顯示的頁數為最後頁時下一頁尾頁鏈接失效
接下來以實例的方式告訴大家怎麼一步步的做出這種分頁效果
首先數據庫中字段record_info存在於info表中(實例下載中有數據庫)先鏈接數據庫並將一個記錄集打開以下代碼
<%
Set conn=ServerCreateObject(AdodbConnection)
connstr=provider=MicrosoftJETOLEDB;Data Source=&ServerMapPath(datamdb)
connopen connstr
Set rs=ServerCreateObject(AdodbRecordset)
sql=Select * from info
rsopen sqlconn
%>
這段代碼不詳解相信初入門的都會具體的解釋可以看看《手把手教你用ASP做留言本》教程
接下來這是分頁中比較重要的部分了了三行而已
<%
rspagesize=
curpage=RequestQueryString(curpage)
rsabsolutepage=curpage
%>
第二句
rspagesize=這個什麼意思呢?它就是在Recordset對象中的一個內置屬性它的作用是指定每頁的記錄條數設置為時每條記錄放在一起成一頁比如實例中共有條記錄那麼使用rspagesize分頁後這條記錄將分成頁進行顯示
第三句
這裡主要是用於翻頁的功能將URL的post參數curpage傳遞給curpage變量這個curpage將得到浏覽者想要到達的頁數(運行一下實例就會明白)
第四句
rsabsolutepage這個也是個內置的屬性它代表的意思就是將curpage變量的數值指定為當前頁
現在開始可以讓記錄循環顯示了
<%
for i= to rspagesize
if rseof then
exit for
end if
%>
<%=rs(record_info)%><br>
<%
rsmovenext
next
%>
第二句
利用for循環在每頁顯示rspagesize屬性中指定的記錄數
第三四五句
這句意思是當最後一頁達不到指定記錄時就退出循環以免出錯
第七句
綁定從數據庫取出的record_info字段就是叫這字段內的記錄循環顯示的
第九句
用rsmovenext方法將rs記錄集往下移一條記錄
第十句
for循環語句
另外可以用<%=curpage%>讀出當前頁次用<%=rspagecount%>讀出總頁數用<%=rsrecordcount%>讀出總記錄數例如當前第<%=curpage%>頁共有<%=rspagecount%>頁共有<%=rsrecordcount%>條記錄
在顯示首頁上頁下頁尾頁功能上采用了ifelse語句比較好懂
<%if curpage= then%>
首頁
<%else%>
<a >首頁</a>
<%end if%>
<%if curpage= then%>
上一頁
<%else%>
<a ?curpage=<%=curpage%>>上一頁</a>
<%end if%>
<%if rspagecount<curpage+ then%>
下一頁
<%else%>
<a ?curpage=<%=curpage+%>>下一頁</a>
<%end if%>
<%if rspagecount<curpage+ then%>
尾頁
<%else%>
<a ?curpage=<%=rspagecount%>>尾頁</a>
<%end if%>
理解一下
首頁這個使用當前頁是否為第一頁時判別
如果當前為第一頁(也就是首頁)
那麼顯示首頁兩字
沒有鏈接
否則提供直接跳轉到首頁的鏈接
上一頁當前為第一頁時
鏈接失效
反過來
鏈接到當前面的上一頁
這裡使用
<%=curpage
%>
就是用當前的頁數減去
得到上一頁
下一頁這裡需要使用rs
pagecount這個屬性來比較
假如總頁數小於當前頁數加
的值
那表明這就是第後一頁
鏈接將失效
否則鏈接到下一頁
尾頁和下一頁的功能一樣判定出是最後頁時鏈接失效
否則將當前頁指定為rs
pagecount(總頁數)
From:http://tw.wingwit.com/Article/program/net/201311/11613.html