给万博系统的新闻系统增加分页功能,无需修改数据库,只需改变一个文件,就可以了.
如果将后台的Webediter增加一个插入分页符,那就更完美了.我还没加这个.
本例是在后台录入新闻时,在需要分页的位置插入分页符:{$html_page$}就可以了.
代码如下,有详细说明
newsshow.asp
<>
<HTML>
<HEAD>
<TITLE><%=sitename%></TITLE>
<METAHTTP-EQUIV="Content-Type"C>
<linkhref="images/CSS.css"type=text/cssrel=stylesheet>
</HEAD>
<bodytopmargin="0">
<tablewidth="780"border="0"cellspacing="0"cellpadding="0">
<tr>
<tdcolspan="3"><></td>
</tr>
<tr>
<tdwidth="145"align="left"valign="top"><></td>
<tdalign="left"valign="top"><tablewidth="625"border="0"cellspacing="0"cellpadding="0">
<tr>
<tdwidth="17"height="20"></td>
<tdwidth="598"></td>
<tdwidth="10"></td>
</tr>
<tr>
<tdwidth="17"><%idd=trim(request.querystring("id"))
setrsr=server.createobject("adodb.recordset")
sql="select*fromNewswherePutout=trueandid="&idd
rsr.opensql,conn,1,3
ifnotrsr.eofthen
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"找不到记录,发生导常错误,请联系管理员!"
endif
'这里要处理接收到的分页参数,以此来进行显示第几页的内容
'下面这两句就是如果没有page这个参数传来就让变量pageNum取显示第一页的值:0
IfRequest("page")=""Then
pageNum=0
'否则就给变量赋值为传递来的page里的参数,来显示其他页
Else
pageNum=Request("page")
Endif
%>
<%
'如果加了可选执行UBB代码,可以加上下面的代码
'rs("NoUBB")是数据库里关于禁用UBB的字段,0为禁用,1为执行
'Ifrsr("NoUBB")=0then
'为避免和文章内容相连出现错误,用Replace函数把分页代码“{$html_page$}”的前后各加一个全角的
'rs("content")是数据库里正文的字段,在这里加上UBB或者禁用UBB
Content=Replace(Newcontent,"{$html_page$}","{$html_page$}")
'Elseifrsr("NoUBB")=1then
'Content=Replace((ubb(Newcontent)),"{$html_page$}","{$html_page$}")
'Endif
%></td>
<tdheight="22"align="center"class="NEWS_title"><%=Newtitle%><br>
<hrsize="1"noshadecolor="#666666"></td>
<tdwidth="10"></td>
</tr>
<tr>
<tdrowspan="3"></td>
<tdheight="303"valign="top"><%
'这里就是关键了
'我们用split函数将文章分段取出存入变量content
ContentStr=split(Content,"{$html_page$}")
'按照刚才从URL参数中取得的要显示那面的那个变量,就循环显示一页
Fori=pageNumtopageNum
%>
<>
<%=ContentStr(i)%>
<%Next%></td>
<tdrowspan="3"></td>
</tr>
<tr>
<tdheight="8"valign="top"></td>
</tr>
<tr>
<tdheight="8"align="center"valign="top">本文共分
<%
'分页的地方,用ubound(ContentStr)取得文章一共分为几页,注意这里是从0开始,所以总页数需要加1
Forp=0toubound(ContentStr)
'链接还是本页面,只不过文章ID参数后面还要加上一个分页的参数:page
%>
<ahref="newsshow.asp?ID=<%=request("ID")%>&page=<%=p%>"class=""><%=p+1%></a>
<%Next%>页</td>
</tr>
<tr>
<tdheight="40"></td>
<tdheight="60"valign="bottom"><tablewidth="100%"border="0"cellpadding="5"cellspacing="1"bgcolor="#CECECE">
<trbgcolor="#FFFFFF">
<tdwidth="16%"align="right"bgcolor="#CECECE">发布者:</td>
<tdwidth="20%"bgcolor="#FFFFFF"><%=Putman%></td>
<tdwidth="15%"align="right"bgcolor="#CECECE">添加时间:</td>
<tdwidth="20%"bgcolor="#FFFFFF"><%=addtime%></td>
<tdwidth="15%"align="right"bgcolor="#CECECE">点击数:</td>
<tdwidth="15%"><%=kig%></td>
</tr>
</table></td>
<td></td>
</tr>
</table></td>
<td></td>
</tr>
<tr>
<tdcolspan="3"><></td>
</tr>
</table>
</body>
</html>