ASP實例講解:用分頁符實現長文章分頁顯示_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:多個函數驗證同一表單
      表單在提交前我們通常會用客戶端JS對其內容進行驗證,通常都是寫一個函數然后在onsumbit事件中調用,如下: 以下為引用的內容: <html> <head&

      長文章頁用分頁符來顯示,想用ASP也實現這種功能,可發現只有根據字數進行分頁的方法,但這種方法有一個BUG,就是如果你文章內容中如果有UBB或HTML代碼,它很容易造成在[code][/code]之間進行分頁,或者干脆就把[code]分解成了[co和de],這樣文章顯示就會出現錯誤。

      以下幾個步驟將能夠完全實現。

      第一步:

      按照正常的文章系統一路做下去,后臺的文章添加,文章的檢索,和文章的詳細頁,都是常規方式操作,這里不加描述,請參閱相關帖子。只是在文章添加時,在你想讓它分頁的地方加上分頁符:“|||”

      (當然這個符號你可以隨便用,比如:[page]、&&&、###、@@@……,只要它不會在文章要正常顯示的地方出現就行了。)

      我用了四個頁面,輸入頁(index.asp)、輸入完成頁(add.asp)、文章列表頁(view.asp)、文章內容頁(display.asp),前三個都是不用處理的頁面,看下面的圖片我想一般的小鳥就會做了,關鍵是最后一個displasy.asp,所有實現分頁的代碼都在這里。

      第二步:

      在文章正文內容的動態數據部分做一些手腳,下面是代碼和解釋:

      以下為引用的內容:
      <%
      '這里要處理接收到的分頁參數,以此來進行顯示第幾頁的內容
      '下面這兩句就是如果沒有page這個參數傳來就讓變量pageNum取顯示第一頁的值:0
      If Request("page")="" Then
      pageNum=0
      '否則就給變量賦值為傳遞來的page里的參數,來顯示其他頁
      Else
      pageNum=Request("page")
      End if
      %> <% '如果加了可選執行UBB代碼,可以加上下面的代碼
      'rs("NoUBB")是數據庫里關于禁用UBB的字段,0為禁用,1為執行
      If rs("NoUBB")=0 then
      '為避免和文章內容相連出現錯誤,用Replace函數把分頁代碼“|||”的前后各加一個全角的
      'rs("content")是數據庫里正文的字段,在這里加上UBB或者禁用UBB
      Content=Replace((unHTML(rs("content"))),"|||"," ||| ")
      Elseif rs("NoUBB")=1 then
      Content=Replace((ubb(rs("content"))),"|||"," ||| ")
      End if
      %>
      <% '這里就是關鍵了
      '我們用split函數將文章分段取出存入變量content
      ContentStr=split(Content,"|||")
      '按照剛才從URL參數中取得的要顯示那頁的那個變量,就循環顯示一頁
      For i=pageNum to pageNum
      %>
      <!--這里將是文章正文內容-->
      <%=ContentStr %>
      <% Next %>
      </td>
      </tr>
      <tr>
      <td height="30" class="ClassName">本文共分
      <%
      '分頁的地方,用ubound(ContentStr)取得文章一共分為幾頁,注意這里是從0開始,所以總頁數需要加1
      For p = 0 to ubound(ContentStr)
      '鏈接還是本頁面,只不過文章ID參數后面還要加上一個分頁的參數:page %>
      <a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p 1%></a> <% Next %>頁

      很簡單吧,要是把注釋都刪除,才15行代碼,不過還要加工一下,讓它能有上一頁、下一頁和當前頁突出的功能就完善了。

      已測試過,除非文章里出現那個分頁符,否則各種類型都不會出錯,當然可以把|||的數量加大比如:||||||,再六個“|”以下在文章出現都沒事,但六個以上就會分頁了,選擇一個好的分頁符就可以了。

      分享:說說對象的復制
      以下為引用的內容: <% Dim oConn,oRs Set oConn = Server.CreateObject("ADODB.Connection") Set ors = Server.CreateObject("ADODB.R

      來源:模板無憂//所屬分類:ASP教程/更新時間:2008-08-22
      相關ASP教程