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