淺析VB.NET開發自動分頁
作者:臥槽祖德
這里介紹VB.NET開發自動分頁,長內容即可以手動分頁也可以自動分頁。采用自動分頁功能,只需告訴計算機每頁大約字數就可以了。
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
【編輯推薦】
責任編輯:佚名
來源:
博客園