VB.Net 开发的长内容自动分页功能

长内容即可以手动分页也可以自动分页。
采用自动分页功能,只需告诉计算机每页大约字数就可以了。
下面附源码,方便自己,也方便大家研究:

PublicClassWebForm1
InheritsSystem.Web.UI.Page
ProtectedWithEventsLabel1AsSystem.Web.UI.WebControls.Label
ProtectedWithEventsLabel2AsSystem.Web.UI.WebControls.Label
ProtectedWithEventsLabel3AsSystem.Web.UI.WebControls.Label
ProtectedWithEventsLabel4AsSystem.Web.UI.WebControls.Label

#Region"Web窗体设计器生成的代码"

'该调用是Web窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()>PrivateSubInitializeComponent()

EndSub

PrivateSubPage_Init(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Init
'CODEGEN:此方法调用是Web窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
EndSub

#EndRegion

PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'在此处放置初始化页的用户代码
pages()
EndSub

'长内容分页
Subpages()
Dimi,start,stops,t,stat,statt,pp,pagecount,pagesize,articleidAsInteger
Dimpa,articletxt,articletext,contenttext,htmlAsString
contenttext="<p>aaaaaaa</p><p>bbbbbbbbbbbb</p><p>cccccccccccccccc</p>"
'变量初始值
stat=0
statt=0
start=0'开始查询的字符串位置,初始为0
stops=0
pagesize=2'定义每页至少显示字符串数
pagecount=0

'获得当前的页数
pa=Request.Params("page")
If(pa=""OrIsDBNull(pa))Then
pa="1"
EndIf
pp=Convert.ToInt32(pa)

'获得内容
articletxt=contenttext

'判断页面的内容长度是否大于定义的每页至少显示字符串数
If(articletxt.Length>=pagesize)Then'如果大于字符串数,则我们可以分页显示
t=articletxt.Length/pagesize'获得大致的总页数
'根据目前获得的页数循环
Fori=0Tot
'如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找
If(start+pagesize<articletxt.Length)Then
stat=articletxt.IndexOf("</p>",start+pagesize)'查找</P>分页点的位置
'如果找不到
'If(stat<=0)Then
'stat=articletxt.IndexOf("</p>",start+pagesize)'查找</p>分页点的位置;这里您可以自己设置分页点的判断
'EndIf
EndIf
'Response.Write("'"&stat&"'")
If(stat<=0)Then
'如果找不到分页点,说明不能分页,也就不需要做其他的劳动了;否则,就进行分页
'articletext=articletxt'将结果付给要导出的变量
'Label1.Text=articletext&stat
'ExitSub
Else

stops=stat'分页点的位置也就作为这一页的终点位置
If(start+pagesize>=articletxt.Length)Then'如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点
stops=articletxt.Length
EndIf
If(pp=i+1)Then'如果是当前,那么输出当前页的内容
articletext=articletxt.Substring(start,stops-start)'取内容的起始位置到终点位置这段字符串输出
Label1.Text=articletext
EndIf
start=stat'将终点位置作为下一页的起始位置
pagecount=pagecount+1'获得实际页总数
'Response.Write("-"&pagecount&"-")
EndIf
Next
EndIf
'分页部分(这里就简单多了)
'定义分页代码变量

If(pagecount>1)Then'当页数大于1的时候我们显示页数
'Response.Write(pp)
If(pp-1>0)Then'显示上一页,方便浏览
html+="<ahref=?id="&articleid&"&page="&(pp-1)&">[上一页]</a>"
Else
Ifpp=1Then
html+="[<fontcolor=#cccccc>上一页</font>]"
Else
html+="<ahref=?id="&articleid&"&page="&(1)&">[上一页]</a>"
EndIf

EndIf
Fori=1Topagecount

If(i=pp)Then'如果是当前页,加粗显示
html+="<b>["&i&"]</b>"
Else
html+="<ahref=?id="&articleid&"&page="&i&">["&i&"]</a>"
EndIf
Next
If(pp+1>pagecount)Then'显示下一页,方便浏览
Ifpp=pagecountThen
html+="[<fontcolor=#cccccc>下一页</font>]"
Else
html+="<ahref=?id="&articleid&"&page="&(pagecount)&">[下一页]</a></p>"
EndIf
Else
html+="<ahref=?id="&articleid&"&page="&(pp+1)&">[下一页]</a></p>"
EndIf
EndIf
Label2.Text=html
EndSub

EndClass
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值