給萬博系統的新聞系統增加分頁功能,無需修改數據庫,只需改變一個文件,就可以了.
如果將後台的Webediter增加一個插入分頁符,那就更完美了.我還沒加這個.
本例是在後台錄入新聞時,在需要分頁的位置插入分頁符: {$html_page$} 就可以了.
代碼如下,有詳細說明
newsshow.asp
<!--#include file="siteinfo.asp"-->
<HTML>
<HEAD>
<TITLE><%=sitename%></TITLE>
<META HTTP-EQUIV="Content-Type" C>
<link href="images/CSS.css" type=text/css rel=stylesheet>
</HEAD>
<body topmargin="0">
<table width="780" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"><!--#include file="top.asp"--></td>
</tr>
<tr>
<td width="145" align="left" valign="top"><!--#include file="left.asp" --></td>
<td align="left" valign="top" ><table width="625" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="17" height="20"> </td>
<td width="598"> </td>
<td width="10"> </td>
</tr>
<tr >
<td width="17"><% idd=trim(request.querystring("id"))
set rsr=server.createobject("adodb.recordset")
sql="select * from News where Putout=true and id="&idd
rsr.open sql,conn,1,3
if not rsr.eof then
Newcontent=rsr("Newcontent")
Newtitle=rsr("Newtitle")
Putman=rsr("Putman")
kig=rsr("kig")
kig=kig+1
addtime=rsr("addtime")
rsr("kig")=kig
rsr.update
else
response.Write"找不到記錄,發生導常錯誤,請聯系管理員!"
end if
'這裡要處理接收到的分頁參數,以此來進行顯示第幾頁的內容
'下面這兩句就是如果沒有page這個參數傳來就讓變量pageNum取顯示第一頁的值:0
If Request("page")="" Then
pageNum=0
'否則就給變量賦值為傳遞來的page裡的參數,來顯示其他頁
Else
pageNum=Request("page")
End if
%>
<%
'如果加了可選執行UBB代碼,可以加上下面的代碼
'rs("NoUBB")是數據庫裡關於禁用UBB的字段,0為禁用,1為執行
'If rsr("NoUBB")=0 then
'為避免和文章內容相連出現錯誤,用Replace函數把分頁代碼“{$html_page$}”的前後各加一個全角的
'rs("content")是數據庫裡正文的字段,在這裡加上UBB或者禁用UBB
Content=Replace(Newcontent,"{$html_page$}"," {$html_page$} ")
'Elseif rsr("NoUBB")=1 then
'Content=Replace((ubb(Newcontent)),"{$html_page$}"," {$html_page$} ")
'End if
%></td>
<td height="22" align="center" class="NEWS_title"><%=Newtitle%><br>
<hr size="1" noshade color="#666666"></td>
<td width="10"> </td>
</tr>
<tr>
<td rowspan="3"> </td>
<td height="303" valign="top" ><%
'這裡就是關鍵了
'我們用split函數將文章分段取出存入變量content
ContentStr=split(Content,"{$html_page$}")
'按照剛才從URL參數中取得的要顯示那面的那個變量,就循環顯示一頁
For i=pageNum to pageNum
%>
<!--這裡將是文章正文內容-->
<%=ContentStr(i) %>
<% Next %></td>
<td rowspan="3"> </td>
</tr>
<tr>
<td height="8" valign="top"> </td>
</tr>
<tr>
<td height="8" align="center" valign="top">本文共分
<%
'分頁的地方,用ubound(ContentStr)取得文章一共分為幾頁,注意這裡是從0開始,所以總頁數需要加1
For p = 0 to ubound(ContentStr)
'鏈接還是本頁面,只不過文章ID參數後面還要加上一個分頁的參數:page
%>
<a href="newsshow.asp?ID=<%=request("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
<% Next %>頁</td>
</tr>
<tr>
<td height="40"> </td>
<td height="60" valign="bottom"><table width="100%" border="0" cellpadding="5" cellspacing="1" bgcolor="#CECECE">
<tr bgcolor="#FFFFFF" >
<td width="16%" align="right" bgcolor="#CECECE" >發 布 者:</td>
<td width="20%" bgcolor="#FFFFFF"> <%=Putman%></td>
<td width="15%" align="right" bgcolor="#CECECE">添加時間:</td>
<td width="20%" bgcolor="#FFFFFF"> <%=addtime%></td>
<td width="15%" align="right" bgcolor="#CECECE">點 擊 數:</td>
<td width="15%"><%=kig%></td>
</tr>
</table></td>
<td> </td>
</tr>
</table></td>
<td> </td>
</tr>
<tr>
<td colspan="3"><!--#include file="bot.asp"--></td>
</tr>
</table>
</body>
</html>