您好,登錄后才能下訂單哦!
VB.NET中怎么實現(xiàn)自動分頁,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
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è)計器生成的代碼 " ''該調(diào)用是 Web 窗體設(shè)計器所必需的。 <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è)計器所必需的 ''不要使用代碼編輯器修改它。 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 ''長內(nèi)容分頁 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 ''定義每頁至少顯示字符串?dāng)?shù) pagecount = 0 ''獲得當(dāng)前的頁數(shù) pa = Request.Params("page") If (pa = "" Or IsDBNull(pa)) Then pa = "1" End If pp = Convert.ToInt32(pa) ''獲得內(nèi)容 articletxt = contenttext ''判斷頁面的內(nèi)容長度是否大于定義的每頁至少顯示字符串?dāng)?shù) If (articletxt.Length >= pagesize) Then '' 如果大于字符串?dāng)?shù),則我們可以分頁顯示 t = articletxt.Length / pagesize ''獲得大致的總頁數(shù) ''根據(jù)目前獲得的頁數(shù)循環(huán) For i = 0 To t ''如果查詢開始位置到查詢的范圍超出整個內(nèi)容的長度,那么就不用尋找斷點(分頁點);反之,查找 If (start + pagesize < articletxt.Length) Then stat = articletxt.IndexOf("</p>", start + pagesize) ''查找</P>分頁點的位置 ''如果找不到 ''If (stat <= 0) Then ''stat = articletxt.IndexOf("</p>", start + pagesize) ''查找</p>分頁點的位置; 這里您可以自己設(shè)置分頁點的判斷 ''End If End If ''Response.Write("''" & stat & "''") If (stat <= 0) Then ''如果找不到分頁點,說明不能分頁,也就不需要做其他的勞動了;否則,就進行分頁 ''articletext = articletxt ''將結(jié)果付給要導(dǎo)出的變量 ''Label1.Text = articletext & stat ''Exit Sub Else stops = stat ''分頁點的位置也就作為這一頁的終點位置 If (start + pagesize >= articletxt.Length) Then ''如果起始位置到查詢的范圍超出整個內(nèi)容的長度, 那么這一頁的終點位置為內(nèi)容的終點 stops = articletxt.Length End If If (pp = i + 1) Then ''如果是當(dāng)前,那么輸出當(dāng)前頁的內(nèi)容 articletext = articletxt.Substring(start, stops - start) '' 取內(nèi)容的起始位置到終點位置這段字符串輸出 Label1.Text = articletext End If start = stat ''將終點位置作為下一頁的起始位置 pagecountpagecount = pagecount + 1 ''獲得實際頁總數(shù) ''Response.Write("-" & pagecount & "-") End If Next End If ''分頁部分(這里就簡單多了) ''定義分頁代碼變量 If (pagecount > 1) Then ''當(dāng)頁數(shù)大于1的時候我們顯示頁數(shù) ''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 ''如果是當(dāng)前頁,加粗顯示 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
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。