淺析VB.NET開(kāi)發(fā)自動(dòng)分頁(yè)
作者:臥槽祖德
這里介紹VB.NET開(kāi)發(fā)自動(dòng)分頁(yè),長(zhǎng)內(nèi)容即可以手動(dòng)分頁(yè)也可以自動(dòng)分頁(yè)。采用自動(dòng)分頁(yè)功能,只需告訴計(jì)算機(jī)每頁(yè)大約字?jǐn)?shù)就可以了。
VB.NET還是比較常用的,于是我研究了一下VB.NET開(kāi)發(fā)自動(dòng)分頁(yè),在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。
長(zhǎng)內(nèi)容即可以手動(dòng)分頁(yè)也可以自動(dòng)分頁(yè)。采用自動(dòng)分頁(yè)功能,只需告訴計(jì)算機(jī)每頁(yè)大約字?jǐn)?shù)就可以了。以下是介紹VB.NET開(kāi)發(fā)自動(dòng)分頁(yè)
下面附源碼,方便自己,也方便大家:
- 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 窗體設(shè)計(jì)器生成的代碼 "
- ''該調(diào)用是 Web 窗體設(shè)計(jì)器所必需的。
- <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: 此方法調(diào)用是 Web 窗體設(shè)計(jì)器所必需的
- ''不要使用代碼編輯器修改它。
- InitializeComponent()
- End Sub
- #End Region
- Private Sub Page_Load(ByVal sender As System.Object,
- ByVal e As System.EventArgs) Handles MyBase.Load
- ''在此處放置初始化頁(yè)的用戶代碼
- pages()
- End Sub
- ''長(zhǎng)內(nèi)容分頁(yè)
- 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 ''開(kāi)始查詢的字符串位置,初始為0
- stops = 0
- pagesize = 2 ''定義每頁(yè)至少顯示字符串?dāng)?shù)
- pagecount = 0
- ''獲得當(dāng)前的頁(yè)數(shù)
- pa = Request.Params("page")
- If (pa = "" Or IsDBNull(pa)) Then
- pa = "1"
- End If
- pp = Convert.ToInt32(pa)
- ''獲得內(nèi)容
- articletxt = contenttext
- ''判斷頁(yè)面的內(nèi)容長(zhǎng)度是否大于定義的每頁(yè)至少顯示字符串?dāng)?shù)
- If (articletxt.Length >= pagesize) Then '' 如果大于字符串?dāng)?shù),則我們可以分頁(yè)顯示
- t = articletxt.Length / pagesize ''獲得大致的總頁(yè)數(shù)
- ''根據(jù)目前獲得的頁(yè)數(shù)循環(huán)
- For i = 0 To t
- ''如果查詢開(kāi)始位置到查詢的范圍超出整個(gè)內(nèi)容的長(zhǎng)度,那么就不用尋找斷點(diǎn)(分頁(yè)點(diǎn));反之,查找
- If (start + pagesize < articletxt.Length) Then
- stat = articletxt.IndexOf("</p>", start + pagesize) ''查找</P>分頁(yè)點(diǎn)的位置
- ''如果找不到
- ''If (stat <= 0) Then
- ''stat = articletxt.IndexOf("</p>", start + pagesize) ''查找</p>分頁(yè)點(diǎn)的位置;
- 這里您可以自己設(shè)置分頁(yè)點(diǎn)的判斷
- ''End If
- End If
- ''Response.Write("''" & stat & "''")
- If (stat <= 0) Then
- ''如果找不到分頁(yè)點(diǎn),說(shuō)明不能分頁(yè),也就不需要做其他的勞動(dòng)了;否則,就進(jìn)行分頁(yè)
- ''articletext = articletxt ''將結(jié)果付給要導(dǎo)出的變量
- ''Label1.Text = articletext & stat
- ''Exit Sub
- Else
- stops = stat ''分頁(yè)點(diǎn)的位置也就作為這一頁(yè)的終點(diǎn)位置
- If (start + pagesize >= articletxt.Length) Then ''如果起始位置到查詢的范圍超出整個(gè)內(nèi)容的長(zhǎng)度,
- 那么這一頁(yè)的終點(diǎn)位置為內(nèi)容的終點(diǎn)
- stops = articletxt.Length
- End If
- If (pp = i + 1) Then ''如果是當(dāng)前,那么輸出當(dāng)前頁(yè)的內(nèi)容
- articletext = articletxt.Substring(start, stops - start) ''
- 取內(nèi)容的起始位置到終點(diǎn)位置這段字符串輸出
- Label1.Text = articletext
- End If
- start = stat ''將終點(diǎn)位置作為下一頁(yè)的起始位置
- pagecountpagecount = pagecount + 1 ''獲得實(shí)際頁(yè)總數(shù)
- ''Response.Write("-" & pagecount & "-")
- End If
- Next
- End If
- ''分頁(yè)部分(這里就簡(jiǎn)單多了)
- ''定義分頁(yè)代碼變量
- If (pagecount > 1) Then ''當(dāng)頁(yè)數(shù)大于1的時(shí)候我們顯示頁(yè)數(shù)
- ''Response.Write(pp)
- If (pp - 1 > 0) Then ''顯示上一頁(yè),方便瀏覽
- html += "<a href=?id=" & articleid & "&page=" & (pp - 1) & ">[上一頁(yè)]</a> "
- Else
- If pp = 1 Then
- html += "[<font color=#cccccc>上一頁(yè)</font>] "
- Else
- html += "<a href=?id=" & articleid & "&page=" & (1) & ">[上一頁(yè)]</a> "
- End If
- End If
- For i = 1 To pagecount
- If (i = pp) Then ''如果是當(dāng)前頁(yè),加粗顯示
- html += "<b>[" & i & "]</b> "
- Else
- html += "<a href=?id=" & articleid & "&page=" & i & ">[" & i & "]</a> "
- End If
- Next
- If (pp + 1 > pagecount) Then ''顯示下一頁(yè),方便瀏覽
- If pp = pagecount Then
- html += "[<font color=#cccccc>下一頁(yè)</font>] "
- Else
- html += "<a href=?id=" & articleid & "&page=" & (pagecount) & ">[下一頁(yè)]</a></p>"
- End If
- Else
- html += "<a href=?id=" & articleid & "&page=" & (pp + 1) & ">[下一頁(yè)]</a></p>"
- End If
- End If
- Label2.Text = html
- End Sub
- End Class
【編輯推薦】
責(zé)任編輯:佚名
來(lái)源:
博客園