需要注意的是 [ page ]需要刪除中間的空格,因為與腳本之家的后臺分頁重復(fù),所以加了空格處理。
只是在文章添加時,在你想讓它分頁的地方加上分頁符:“[ page ]”(當(dāng)然這個符號你可以隨便用,比如:[ page ]、、###、@@@……,只要它不會在文章要正常顯示的地方出現(xiàn)就行了。)
我用了四個頁面,輸入頁(index.asp)、輸入完成頁(add.asp)、文章列表頁(view.asp)、文章內(nèi)容頁(text.asp),前三個都是不用處理的頁面,看下面的介紹我想一般的小鳥就會做了,關(guān)鍵是最后一個text.asp,所有實現(xiàn)分頁的代碼都在這里。
第二步:來
在文章正文內(nèi)容的動態(tài)數(shù)據(jù)部分做一些手腳,下面是代碼和解釋:
復(fù)制代碼 代碼如下:
'這里是處理分頁的代碼
'考濾保險起見,我們用replace函數(shù)在分頁代碼前后各加一個全角空格
MMText=replace(rs("contents"),"[ page ]"," [ page ] ")
MMfText=split(MMText,"[ page ]")
'用ubound函數(shù)取得要分的頁數(shù),注意下標(biāo)值是從0開始的
contentNum=ubound(MMfText)
page=Clng(request("page"))
if page1 then
page=1
end if
'為了看起來直觀一些,我們把起始頁設(shè)為1,那么總頁數(shù)就要加上1
if page>contentNum+1 then
page=contentNum+1
end if
'換照上面從url中參數(shù)中取得的要顯示的那面的那個變量,就循環(huán)顯示一頁
for i=page to page
response.write MMfText(i-1)
next
'列出分頁
if cint(contentNum)>0 then
if page>1 then
response.write "a href='text.asp?id="request("id")"page="page-1"'>[上一頁]/a> "
end if
'記得下標(biāo)值是從0開始,我們這里從1開始分頁,總數(shù)要加1
for p=1 to contentNum+1
if page=p then
response.write "a href='text.asp?id="request("id")"page="p"'>font color=red>["p"]/font>/a> "
else
response.write "a href='text.asp?id="request("id")"page="p"'>["p"]/a> "
end if
next
if page>contentNum+1 then
response.write "a href='text.asp?id="request("id")"page="page+1"'>[下一頁]/a> "
end if
end if
下面是其它網(wǎng)站的文章,大家也可以參考下。
長文章頁用分頁符來顯示,想用ASP也實現(xiàn)這種功能,可發(fā)現(xiàn)只有根據(jù)字數(shù)進行分頁的方法,但這種方法有一個BUG,就是如果你文章內(nèi)容中如果有UBB代碼,它很容易造成在[ code ][ /code ]之間進行分頁,或者干脆就把[ code ]分解成了[co和de],這樣文章顯示就會出現(xiàn)錯誤。
以下幾個步驟將能夠完全實現(xiàn)。
第一步:
按照正常的文章系統(tǒng)一路做下去,后臺的文章添加,文章的檢索,和文章的詳細頁,都是常規(guī)方式操作,這里不加描述,請參閱相關(guān)帖子。只是在文章添加時,在你想讓它分頁的地方加上分頁符:“|||”(當(dāng)然這個符號你可以隨便用,比如:[ page ]、、###、@@@……,只要它不會在文章要正常顯示的地方出現(xiàn)就行了。)
我用了四個頁面,輸入頁(index.asp)、輸入完成頁(add.asp)、文章列表頁(view.asp)、文章內(nèi)容頁(display.asp),前三個都是不用處理的頁面,看下面的圖片我想一般的小鳥就會做了,關(guān)鍵是最后一個displasy.asp,所有實現(xiàn)分頁的代碼都在這里。
第二步:
在文章正文內(nèi)容的動態(tài)數(shù)據(jù)部分做一些手腳,下面是代碼和解釋:
復(fù)制代碼 代碼如下:
%
'這里要處理接收到的分頁參數(shù),以此來進行顯示第幾頁的內(nèi)容
'下面這兩句就是如果沒有page這個參數(shù)傳來就讓變量pageNum取顯示第一頁的值:0
If Request("page")="" Then
pageNum=0
'否則就給變量賦值為傳遞來的page里的參數(shù),來顯示其他頁
Else
pageNum=Request("page")
End if
%>
%
'如果加了可選執(zhí)行UBB代碼,可以加上下面的代碼
'rs("NoUBB")是數(shù)據(jù)庫里關(guān)于禁用UBB的字段,0為禁用,1為執(zhí)行
If rs("NoUBB")=0 then
'為避免和文章內(nèi)容相連出現(xiàn)錯誤,用Replace函數(shù)把分頁代碼“|||”的前后各加一個全角的
'rs("content")是數(shù)據(jù)庫里正文的字段,在這里加上UBB或者禁用UBB
Content=Replace((unHTML(rs("content"))),"|||"," ||| ")
Elseif rs("NoUBB")=1 then
Content=Replace((ubb(rs("content"))),"|||"," ||| ")
End if
%>
%
'這里就是關(guān)鍵了
'我們用split函數(shù)將文章分段取出存入變量content
ContentStr=split(Content,"|||")
'按照剛才從URL參數(shù)中取得的要顯示那面的那個變量,就循環(huán)顯示一頁
For i=pageNum to pageNum
%>
!--這里將是文章正文內(nèi)容-->
%=ContentStr %>
% Next %>
/td>
/tr>
tr>
td height="30" class="ClassName">本文共分
%
'分頁的地方,用ubound(ContentStr)取得文章一共分為幾頁,注意這里是從0開始,所以總頁數(shù)需要加1
For p = 0 to ubound(ContentStr)
'鏈接還是本頁面,只不過文章ID參數(shù)后面還要加上一個分頁的參數(shù):page
%>
a href="display.asp?ID=%=rsquest("ID")%>page=%=p%>" class="">%=p+1%>/a>
% Next %>頁
很簡單吧,要是把注釋都刪除,才15行代碼,不過還要加工一下,讓它能有上一頁、下一頁和當(dāng)前頁突出的功能就完善了。
已測試過,除非文章里出現(xiàn)那個分頁符,否則各種類型都不會出錯,當(dāng)然可以把|||的數(shù)量加大比如:||||||,再六個“|”以下在文章出現(xiàn)都沒事,但六個以上就會分頁了,選擇一個好的分頁符就可以了
您可能感興趣的文章:- 用vbs模擬的一個asp的分頁顯示功能
- ASP Recordset 分頁顯示數(shù)據(jù)的方法(修正版)
- asp.net 文章內(nèi)容分頁顯示的代碼
- asp.net 分頁顯示數(shù)據(jù)表的數(shù)據(jù)的代碼
- asp.net 通用分頁顯示輔助類(改進版)
- asp.net 文章分頁顯示實現(xiàn)代碼
- Asp 解析 XML并分頁顯示源碼
- ASP中實現(xiàn)分頁顯示的七種方法