asp长文章用分页符来分页显示

需要注意的是 [ page ]需要删除中间的空格,因为与我们的后台分页重复,所以加了空格处理。

只是在文章添加时,在你想让它分页的地方加上分页符:“[ page ]”(当然这个符号你可以随便用,比如:[ page ]、&&&、###、@@@……,只要它不会在文章要正常显示的地方出现就行了。)
我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(text.asp),前三个都是不用处理的页面,看下面的介绍我想一般的小鸟就会做了,关键是最后一个text.asp,所有实现分页的代码都在这里。
第二步:来
在文章正文内容的动态数据部分做一些手脚,下面是代码和解释:


代码如下:

'这里是处理分页的代码
'考滤保险起见,我们用replace函数在分页代码前后各加一个全角空格
MMText=replace(rs("contents"),"[ page ]"," [ page ] ")
MMfText=split(MMText,"[ page ]")
'用ubound函数取得要分的页数,注意下标值是从0开始的
contentNum=ubound(MMfText)
page=Clng(request("page"))
if page<1 then
page=1
end if
'为了看起来直观一些,我们把起始页设为1,那么总页数就要加上1
if page>contentNum+1 then
page=contentNum+1
end if
'换照上面从url中参数中取得的要显示的那面的那个变量,就循环显示一页
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
'记得下标值是从0开始,我们这里从1开始分页,总数要加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

下面是其它网站的文章,大家也可以参考下。

长文章页用分页符来显示,想用ASP也实现这种功能,可发现只有根据字数进行分页的方法,但这种方法有一个BUG,就是如果你文章内容中如果有UBB代码,它很容易造成在[ code ][ /code ]之间进行分页,或者干脆就把[ code ]分解成了[co和de],这样文章显示就会出现错误。
以下几个步骤将能够完全实现。
第一步:
按照正常的文章系统一路做下去,后台的文章添加,文章的检索,和文章的详细页,都是常规方式操作,这里不加描述,请参阅相关帖子。只是在文章添加时,在你想让它分页的地方加上分页符:“|||”(当然这个符号你可以随便用,比如:[ page ]、&&&、###、@@@……,只要它不会在文章要正常显示的地方出现就行了。)
我用了四个页面,输入页(index.asp)、输入完成页(add.asp)、文章列表页(view.asp)、文章内容页(display.asp),前三个都是不用处理的页面,看下面的图片我想一般的小鸟就会做了,关键是最后一个displasy.asp,所有实现分页的代码都在这里。
第二步:
在文章正文内容的动态数据部分做一些手脚,下面是代码和解释:


代码如下:

<%
'这里要处理接收到的分页参数,以此来进行显示第几页的内容
'下面这两句就是如果没有page这个参数传来就让变量pageNum取显示第一页的值:0
If Request("page")="" Then
pageNum=0
'否则就给变量赋值为传递来的page里的参数,来显示其他页
Else
pageNum=Request("page")
End if
%>
<%
'如果加了可选执行UBB代码,可以加上下面的代码
'rs("NoUBB")是数据库里关于禁用UBB的字段,0为禁用,1为执行
If rs("NoUBB")=0 then
'为避免和文章内容相连出现错误,用Replace函数把分页代码“|||”的前后各加一个全角的
'rs("content")是数据库里正文的字段,在这里加上UBB或者禁用UBB
Content=Replace((unHTML(rs("content"))),"|||"," ||| ")
Elseif rs("NoUBB")=1 then
Content=Replace((ubb(rs("content"))),"|||"," ||| ")
End if
%>
<%
'这里就是关键了
'我们用split函数将文章分段取出存入变量content
ContentStr=split(Content,"|||")
'按照刚才从URL参数中取得的要显示那面的那个变量,就循环显示一页
For i=pageNum to pageNum
%>
<!--这里将是文章正文内容-->
<%=ContentStr %>
<% Next %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">本文共分
<%
'分页的地方,用ubound(ContentStr)取得文章一共分为几页,注意这里是从0开始,所以总页数需要加1
For p = 0 to ubound(ContentStr)
'链接还是本页面,只不过文章ID参数后面还要加上一个分页的参数:page
%>
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
<% Next %>页

很简单吧,要是把注释都删除,才15行代码,不过还要加工一下,让它能有上一页、下一页和当前页突出的功能就完善了。
已测试过,除非文章里出现那个分页符,否则各种类型都不会出错,当然可以把|||的数量加大比如:||||||,再六个“|”以下在文章出现都没事,但六个以上就会分页了,选择一个好的分页符就可以了

(0)

相关推荐

  • 用vbs模拟的一个asp的分页显示功能

    刚做完1个项目,闲的无聊,想改改自己HomePage,但没有Asp权限,所以突发奇想,用vbs模拟了一个图片分页显示功能!由于写的是适合自己使用的功能,难免很多地方不是很完善!也请各位路过的提些意见,若有朋友正好想找类似的功能,或许可以帮助一下,另外,祝论坛的每一位朋友元旦快乐! 复制代码 代码如下: <script language=VBS> Function showINDEXPAGE()          JS=1          webPath=window.location    

  • asp.net 文章内容分页显示的代码

    aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ArticlePage.aspx.cs" Inherits="ArticlePage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/

  • ASP Recordset 分页显示数据的方法(修正版)

    1.建立Recordset对象 复制代码 代码如下: Dim objMyRst Set objMyRst=Server.CreateObject("ADODB.Recordset") objMyRst.CursorLocation=adUseClientBatch '客户端可批量处理 objMyRst.CursorType=adOpenStatic'光标类型为静态类型 注意:Recordset对象不能用Set objMyRst=Connection.Excute strSQL的语句建立

  • asp.net 通用分页显示辅助类(改进版)

    闲暇时重新再看之前很多项目代码的时候,发现很多总是有那么点缺陷的代码,如芒刺入骨,令人心烦.挣扎良久,苦口婆心劝荐自己今后要争取把某些代码写的更易用更灵活更完善一些.比如在这篇已经提及到的通用客户端分页显示辅助类(AspNetPager),在大大小小项目中出现频率非常高,但是显然对分页形式的选择和样式的控制弱了点.虽然之前这个功能的实现都是按照实际项目的需求来实现的,对旧项目没有影响,但是这也不能成为该功能没有充分实现扩展性和通用性的理由,这点向来自傲的楼猪也不得不承认. 1.分页模式和样式扩展

  • ASP中实现分页显示的七种方法

    在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便. 因为主题方面的原因,关于

  • asp.net 文章分页显示实现代码

    复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { string str = "事情发生在5月14日晚上23:30分,廊坊师范学院1号楼宿舍发生了恶性打架杀人事件,因1号楼较为复杂,有体育生.英语学院.教育学院等学生住宿,当时情况较为混乱.被害者是一名10级接本的体育生(马上面临毕业)和一名11级教育学院的新生,双方产生 矛盾原因目前不明,当场造成2死1重伤,伤口刀刀致命.其中一人被凶手割断喉部大动脉,未经抢救,当场

  • asp.net 分页显示数据表的数据的代码

    实现代码如下: 复制代码 代码如下: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebCo

  • Asp 解析 XML并分页显示源码

    Asp 解析 XML并分页显示,示例源码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>

  • asp长文章用分页符来分页显示

    需要注意的是 [ page ]需要删除中间的空格,因为与我们的后台分页重复,所以加了空格处理. 只是在文章添加时,在你想让它分页的地方加上分页符:"[ page ]"(当然这个符号你可以随便用,比如:[ page ].&&&.###.@@@--,只要它不会在文章要正常显示的地方出现就行了.) 我用了四个页面,输入页(index.asp).输入完成页(add.asp).文章列表页(view.asp).文章内容页(text.asp),前三个都是不用处理的页面,看下面

  • PHP实现长文章分页实例代码(附源码)

    当文章内容比较长,为了更好的满足用户体验度,我们将文章内容分页显示处理,而一般分页处理是在后台发布文章的时候就将提交的内容生成多个分页后的静态文件.通过本文结合实例采用php动态将长文章内容进行分页处理. 查看效果演示     源码下载 如何分页 手动分页:一般在编辑内容时加入特殊分页标记,如{pages},提交后,PHP程序会根据分页符处理分页,生成不同的静态页面.这种分页方法分页准确,但是需要人工手动添加分页符,工作量大. 自动分页:PHP程序会根据设置好的分页符将内容进行分页,然后生成不同

  • asp.net使用FCK编辑器中的分页符实现长文章分页功能

    本文实例讲述了asp.net使用FCK编辑器中的分页符实现长文章分页功能.分享给大家供大家参考,具体如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SplitContent.aspx.cs" Inherits="SplitContent" %> <%@ Register Assembly="FredCK.FCKeditorV2&

  • fckeditor编辑器下的自定义分页符实现方法

    这里我们小编参考了几篇文章特为大家整理下,用到的朋友多支持一下了. 进行长文章分页,编辑人员在控制分页符的时候手工插入很麻烦,所以修改了FCK的插入分页符的插入字符: 修改方法: 打开/editor/js/ 找到fckeditorcode_gecko.js和fckeditorcode_ie.js 因为fck有二个js文件.fckeditorcode_gecko.js是针对非ie的.一个是针对ie的.所以我们需要更改二个js的文件. 这样方便我们以后插入分页时,就不需要那么一大串的了. 找到: v

  • 在ASP中使用均速分页法提高分页速度的方法

    均速分页法 一.适用范围 均速分页法主要适用于文章系统,新闻系统等排序方法固定的ASP+ACCESS应用 二.特点说明     很多用过一些文章系统或是新闻系统的朋友知道,一般的文章系统或是新闻系统,在分类分页时,通常是通过读取数据库中满足条件的排序后数据,然后根据请求页号,通过定位操作,指向某条数据,并且开始读取这条数据后面的若干条数据作为一页.这种分页方法,原理简单,但是存在的问题是每次都需要把数据库中满足条件的排序后数据都读取出来,如果有两千条数据,这个还好,如果有两万条呢?显示,这会占用

  • 在ASP中使用均速分页法提高分页速度

    一.适用范围 均速分页法主要适用于文章系统,新闻系统等排序方法固定的ASP+ACCESS应用 二.特点说明 很多用过一些文章系统或是新闻系统的朋友知道,一般的文章系统或是新闻系统,在分类分页时,通常是通过读取数据库中满足条件的排序后数据,然后根据请求页号,通过定位操作,指向某条数据,并且开始读取这条数据后面的若干条数据作为一页.这种分页方法,原理简单,但是存在的问题是每次都需要把数据库中满足条件的排序后数据都读取出来,如果有两千条数据,这个还好,如果有两万条呢?显示,这会占用大量的内存,浪费很多

  • Java实现在Word指定位置插入分页符

    目录 程序环境 插入分页符 1.在指定段落后插入分页符 2.在指定文本位置后插入分页符 在Word插入分页符可以在指定段落后插入,也可以在特定文本位置处插入.本文,将以Java代码来操作以上两种文档分页需求.下面是详细方法及步骤. 程序环境 在程序中导入jar,如下两种方法: 方法1:手动引入.将 Free Spire.Doc for Java 下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序: 方法2(推荐

  • asp中通过getrows实现数据库记录分页的一段代码

    <%@ Language = VBSCRIPT %> <% Option Explicit %> <% rem 在asp中通过getrows实现数据库记录分页的一段代码 Dim iStart, iOffset iStart = Request("Start") iOffset = Request("Offset") if Not IsNumeric(iStart) or Len(iStart) = 0 then iStart = 0 e

  • 在asp中通过getrows实现数据库记录分页的一段代码

    复制代码 代码如下: <%@ Language = VBSCRIPT %>  <% Option Explicit %>  <%  rem 在asp中通过getrows实现数据库记录分页的一段代码    Dim iStart, iOffset    iStart = Request("Start")    iOffset = Request("Offset") if Not IsNumeric(iStart) or Len(iStart

随机推荐