VB.NET还是比较常用的,于是我研究了一下VB.NET开发自动分页,在这里拿出来和大家分享一下,希望对大家有用。
长内容即可以手动分页也可以自动分页。采用自动分页功能,只需告诉计算机每页大约字数就可以了。以下是介绍VB.NET开发自动分页
下面附源码,方便自己,也方便大家:
- Public Class WebForm1
- Inherits System.Web.UI.Page
- Protected WithEvents Label1 As System.Web.UI.WebControls.Label
- Protected WithEvents Label2 As System.Web.UI.WebControls.Label
- Protected WithEvents Label3 As System.Web.UI.WebControls.Label
- Protected WithEvents Label4 As System.Web.UI.WebControls.Label
- #Region " Web 窗体设计器生成的代码 "
- ''该调用是 Web 窗体设计器所必需的。
- <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
- End Sub
- Private Sub Page_Init(ByVal sender As System.Object,
- al e As System.EventArgs) Handles MyBase.Init
- ''CODEGEN: 此方法调用是 Web 窗体设计器所必需的
- ''不要使用代码编辑器修改它。
- InitializeComponent()
- End Sub
- #End Region
- Private Sub Page_Load(ByVal sender As System.Object,
- ByVal e As System.EventArgs) Handles MyBase.Load
- ''在此处放置初始化页的用户代码
- pages()
- End Sub
- ''长内容分页
- Sub pages()
- Dim i, start, stops, t, stat, statt, pp, pagecount, pagesize, articleid As Integer
- Dim pa, articletxt, articletext, contenttext, html As String
- 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 = "" Or IsDBNull(pa)) Then
- pa = "1"
- End If
- pp = Convert.ToInt32(pa)
- ''获得内容
- articletxt = contenttext
- ''判断页面的内容长度是否大于定义的每页至少显示字符串数
- If (articletxt.Length >= pagesize) Then '' 如果大于字符串数,则我们可以分页显示
- t = articletxt.Length / pagesize ''获得大致的总页数
- ''根据目前获得的页数循环
- For i = 0 To t
- ''如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找
- If (start + pagesize < articletxt.Length) Then
- stat = articletxt.IndexOf("</p>", start + pagesize) ''查找</P>分页点的位置
- ''如果找不到
- ''If (stat <= 0) Then
- ''stat = articletxt.IndexOf("</p>", start + pagesize) ''查找</p>分页点的位置;
- 这里您可以自己设置分页点的判断
- ''End If
- End If
- ''Response.Write("''" & stat & "''")
- If (stat <= 0) Then
- ''如果找不到分页点,说明不能分页,也就不需要做其他的劳动了;否则,就进行分页
- ''articletext = articletxt ''将结果付给要导出的变量
- ''Label1.Text = articletext & stat
- ''Exit Sub
- Else
- stops = stat ''分页点的位置也就作为这一页的终点位置
- If (start + pagesize >= articletxt.Length) Then ''如果起始位置到查询的范围超出整个内容的长度,
- 那么这一页的终点位置为内容的终点
- stops = articletxt.Length
- End If
- If (pp = i + 1) Then ''如果是当前,那么输出当前页的内容
- articletext = articletxt.Substring(start, stops - start) ''
- 取内容的起始位置到终点位置这段字符串输出
- Label1.Text = articletext
- End If
- start = stat ''将终点位置作为下一页的起始位置
- pagecountpagecount = pagecount + 1 ''获得实际页总数
- ''Response.Write("-" & pagecount & "-")
- End If
- Next
- End If
- ''分页部分(这里就简单多了)
- ''定义分页代码变量
- If (pagecount > 1) Then ''当页数大于1的时候我们显示页数
- ''Response.Write(pp)
- If (pp - 1 > 0) Then ''显示上一页,方便浏览
- html += "<a href=?id=" & articleid & "&page=" & (pp - 1) & ">[上一页]</a> "
- Else
- If pp = 1 Then
- html += "[<font color=#cccccc>上一页</font>] "
- Else
- html += "<a href=?id=" & articleid & "&page=" & (1) & ">[上一页]</a> "
- End If
- End If
- For i = 1 To pagecount
- If (i = pp) Then ''如果是当前页,加粗显示
- html += "<b>[" & i & "]</b> "
- Else
- html += "<a href=?id=" & articleid & "&page=" & i & ">[" & i & "]</a> "
- End If
- Next
- If (pp + 1 > pagecount) Then ''显示下一页,方便浏览
- If pp = pagecount Then
- html += "[<font color=#cccccc>下一页</font>] "
- Else
- html += "<a href=?id=" & articleid & "&page=" & (pagecount) & ">[下一页]</a></p>"
- End If
- Else
- html += "<a href=?id=" & articleid & "&page=" & (pp + 1) & ">[下一页]</a></p>"
- End If
- End If
- Label2.Text = html
- End Sub
- End Class
【编辑推荐】