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, al 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 = " aaaaaaa bbbbbbbbbbbb cccccccccccccccc " ''變數初始值 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(" ", start + pagesize) ''尋找</P>分頁點的位置 ''如果找不到 ''If (stat <= 0) Then ''stat = articletxt.IndexOf("", start + pagesize) ''尋找分頁點的位置; 這裡您可以自己設定分頁點的判斷 ''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> " End If Else html += "<a href=?id=" & articleid & "&page=" & (pp + 1) & ">[下一頁]</a>" End If End If Label2.Text = html End Sub End Class |