物件導向的asp編程之七–分頁對象(vbscript版)

來源:互聯網
上載者:User

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
' ************************************************************************
' Script Compont Object Model
' Design for Active Server Pages
'
' Copyright 2004  Version 2.0
' Made by 尹曙光
' ************************************************************************
function CreateCPageNavbar()
  set CreateCPageNavbar=new CPageNavbar
end function
Class  CPageNavbar
   Public SplitSize '分頁顯示的容量
   public PnWidth
   public PnAlign
   public PlWidth  '表格寬度
   public PlAlign  ' 表格的對齊
   private PageSize
   private RecordCount  '總記錄數]
   private PageCount   '總頁數
   private CurrentPage  '當前的頁碼
   private SplitCount '分頁的顯示的總頁數
   private CurrentSplit '當前的分頁的分頁碼
  '===============================================================
  Private Sub Class_Initialize   ' Setup Initialize event.
          SplitSize=10
          PnWidth="100%"
          PnAlign="right"
          PlWidth="100%"  //表格寬度
          PlAlign="right"  // 表格的對齊
    PageSize=0
          RecordCount=0
          CurrentPage=1
    PageCount=1
    SplitCount=1
    CurrentSplit=1
   End Sub
   Private Sub Class_Terminate   ' Setup Terminate event.
   End Sub
 
   public sub InitPageNavbar(byval iPageSize,byval iRecordCount)
         PageSize=cint(iPageSize)
         RecordCount=clng(iRecordCount)
   PageCount=fix(RecordCount/PageSize)+1
   SplitCount=fix(PageCount/SplitSize)+1
   end sub

   public function GetCurrentPage()
          'on error resume next
          dim pageNo
       pageNo =trim(Request.QueryString ("_Page_No_"))
          '如果沒有選擇第幾頁,則預設顯示第一頁;
          if ( (not IsNumeric(pageNo)) or pageNo="")  then
             pageNo =1
          end if
    CurrentPage=clng(pageNo)
    if (CurrentPage<1) then
             CurrentPage=1
    end if 
    if (CurrentPage>PageCount) then
             CurrentPage=PageCount
    end if 
    CurrentSplit=fix(CurrentPage/SplitSize)+1
          GetCurrentPage=CurrentPage
   end function

   public  function plDisplay()
       dim strBuilder,p,itmp
       strBuilder=""
      '首組為第0族
      strBuilder=strBuilder+"<table border='0' cellpadding='0' cellspacing='0' "
      strBuilder=strBuilder+" width='"&PlWidth&"'  align='"&PlAlign&"'>"
      strBuilder=strBuilder+" <tr> "
      strBuilder=strBuilder+" <td valign='middle' align='right'>分頁:"
      if (CurrentSplit=1) then
    strBuilder=strBuilder+"<font face='webdings'  color='#ff0000'>9</font> "
    strBuilder=strBuilder+"<font face='webdings' color='#ff0000'>7</font>"
      else
    strBuilder=strBuilder+"<a href='?_Page_No_=1' title='首頁'><font face='webdings'>9</font></a>   "
    strBuilder=strBuilder+"<a href='?_Page_No_="&cstr((CurrentSplit-2)*SplitSize)&"' title='上"&cstr(SplitSize)&"頁'><font face='webdings'>7</font></a>   "
   end if
     strBuilder=strBuilder+"<b>"
      '分頁列表
   itmp=(CurrentSplit-1)*SplitSize+1
     for i=itmp to (itmp+SplitSize-1)
        if (i=CurrentPage) then
      strBuilder=strBuilder+"<font color='#000000'>"&cstr(i)&"</font> "
     else
      strBuilder=strBuilder+"<a href=?_Page_No_="&cstr(i)&" title='轉到: 第"&cstr(i)&"頁'>"&cstr(i)&"</a>   "
     end if
     if (i>=PageCount) then
       exit for
        end if
  next
  strBuilder=strBuilder+"</b>"
      '顯示下十頁
     if (CurrentSplit<SplitCount) then
        strBuilder=strBuilder+"<a href='?_Page_No_="&cstr((CurrentSplit)*SplitSize)&"' title='下十頁'><font face='webdings'>8</font></a>   "
  strBuilder=strBuilder+"<a href=?_Page_No_="&cstr(PageCount)&" title='尾頁'><font face='webdings'>:</font></a>   "
     else
     strBuilder=strBuilder+"<font face='webdings' color='#ff0000'>8</font>"
  strBuilder=strBuilder+"<font face='webdings' color='#ff0000'>:</font>"
  end if
     strBuilder=strBuilder+"</td></tr></table>"
     Response.Write(strBuilder)
   end function
  
   public function pnDisplay()
    dim strBuilder,nextPageNo
    strBuilder=""
    strBuilder=strBuilder+"<table border='0'  cellpadding='0' cellspacing='0' "
    strBuilder=strBuilder+"  width='"&PnWidth&"' align='"&PnAlign&"'>"
    strBuilder=strBuilder+"<tr>"
    strBuilder=strBuilder+"<td valign='middle'>頁次:[<b>"&cstr(CurrentPage)&"</b>/<b>"&cstr(PageCount)&"</b>]頁 每頁[<b>"&cstr(PageSize)&"</b>]條 總記錄數:[<b>"&cstr(RecordCount)&"</b>]條</td>"
    strBuilder=strBuilder+"<td align='right'>"
 if (cint(CurrentPage)>1) then
   nextPageNo=cint(CurrentPage)-1
      strBuilder=strBuilder+"[<a href=?_Page_No_="&cstr(nextPageNo)&"  title='轉到上一頁'>上一頁</a>]"
    end if
    if (cint(CurrentPage)<cint(PageCount)) then
      nextPageNo=cint(CurrentPage)+1
      strBuilder=strBuilder+"[<a href=?_Page_No_="&cstr(nextPageNo)&"  title='轉到下一頁'>下一頁</a>]"
    end if
 strBuilder=strBuilder+"</td></tr></table>"
 Response.Write(strBuilder)
   end function
End Class

</SCRIPT>

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.