VB.Net 開發的長內容自動分頁功能

來源:互聯網
上載者:User
分頁 長內容即可以手動分頁也可以自動分頁。
採用自動分頁功能,只需告訴電腦每頁大約字數就可以了。
下面附源碼,方便自己,也方便大家研究:

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 Form設計器產生的程式碼 "

'該調用是 Web Form設計器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法調用是 Web Form設計器所必需的
'不要使用代碼編輯器修改它。
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 '將終點位置作為下一頁的起始位置
pagecount = 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



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。