熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

asp快速分頁代碼

2013-11-13 10:40:01  來源: .NET編程 

  <%@ language = "vbscript" codepage = %>

  <%
option explicit 強制定義變量
dim idcount記錄總數
dim pages每頁條數
dim pagec總頁數
dim page頁碼
dim pagenc 每頁顯示的分頁頁碼數量=pagenc*+
pagenc=
dim pagenmax 每頁顯示的分頁的最大頁碼
dim pagenmin 每頁顯示的分頁的最小頁碼
page=clng(request("page"))
dim start程序開始的時間
dim endt程序結束的時間
dim datafrom數據表名
datafrom="table"
dim connrs
dim datapath 數據庫路經
dim sqlid本頁需要用到的id
dim myself本頁地址
myself = requestservervariables("path_info")
dim sqlsql語句
dim taxis排序的語句
taxis="order by id asc" 正排序
taxis="order by id desc" 倒排序
dim i用於循環的整數
start=timer()
datapath="dbmdb"數據庫
pages=

  連接打開數據庫
dim db
db="dbmdb"     定義數據庫路徑及名稱
set conn = servercreateobject("adodbconnection")
connopen "provider=microsoftjetoledb;data source=" & servermappath(db)
if errnumber <> then
   responsewrite "數據庫鏈接出錯!"
   responseend()
end if

  獲取記錄總數
sql="select count(id) as idcount from ["& datafrom &"]"
set rs=servercreateobject("adodbrecordset")
rsopen sqlconn
idcount=rs("idcount")獲取記錄總數

  if(idcount>) then如果記錄總數=則不處理
 if(idcount mod pages=)then如果記錄總數除以每頁條數有余數則=記錄總數/每頁條數+
  pagec=int(idcount/pages)獲取總頁數
 else
  pagec=int(idcount/pages)+獲取總頁數
 end if

  獲取本頁需要用到的id============================================
 讀取所有記錄的id數值因為只有id所以速度很快
 sql="select id from ["& datafrom &"] " & taxis
 set rs=servercreateobject("adodbrecordset")
 rsopen sqlconn

  rspagesize = pages 每頁顯示記錄數
    if page < then page =
    if page > pagec then page = pagec
    if pagec > then rsabsolutepage = page 

  for i= to rspagesize
 if rseof then exit for 
  if(i=)then
   sqlid=rs("id")
  else
   sqlid=sqlid &""&rs("id")
  end if
 rsmovenext
 next
 獲取本頁需要用到的id結束============================================
end if
%>
<!doctype html public "//wc//dtd html transitional//en">
<html>
<head>
<meta httpequiv="contenttype" content="text/html; charset=gb">
<title>快速分頁</title>
<link rel="stylesheet" href="pagecss" type="text/css">

  </head>

  <body bgcolor="#fff" leftmargin="" topmargin="" marginwidth="" marginheight="">
<table width="%" height="%" border="" cellpadding="" cellspacing="">
  <tr>
    <td valign="middle"><table width="%" height="%" border="" cellpadding="" cellspacing="" bgcolor="#cccccc">
      <tr>
        <td valign="top" bgcolor="#ffffff"><br>          <table width="%" border="" align="center" cellpadding="" cellspacing="" class="zw">
          <tr>
            <td><strong><font color="#ff">快速分頁</font></strong></td>
          </tr>
        </table>
          <br>
          <table width="%" border="" align="center" cellpadding="" cellspacing="" bgcolor="cccccc" class="zw">
            <tr align="center" bgcolor="#fcb">
              <td width="%"><strong>ID</strong></td>
              <td width="%"><strong>主題</strong></td>
              <td width="%"><strong>內容</strong></td>
              <td width="%"><strong>時間</strong></td>
            </tr>
<%
if(idcount> and sqlid<>"") then如果記錄總數=則不處理
 用in刷選本頁所語言的數據僅讀取本頁所需的數據所以速度快
 sql="select [id][aaaa][bbbb][cccc] from ["& datafrom &"] where id in("& sqlid &") "&taxis
 set rs=servercreateobject("adodbrecordset")
 rsopen sqlconn

  while(not rseof)填充數據到表格
 %>
      <tr bgcolor="#ffffff">
        <td align="center"><%=rs()%></td>
        <td><%=rs()%></td>
        <td><%=rs()%></td>
        <td align="center"><%=rs()%></td>
      </tr>
 <%
  rsmovenext
 wend
 %>
    </table>
    <br>
    <table width="%" border="" align="center" cellpadding="" cellspacing="" class="zw">
      <tr align="center">
        <td align="left">共有<strong><font color="#ff"><%=idcount%></font></strong>條記錄<strong><font color="#ff"><%=page%></font></strong>/<%=pagec%>每頁<strong><font color="#ff"><%=pages%></font></strong>條</td>
        </tr>
    </table>         
    <table width="%" border="" align="center" cellpadding="" cellspacing="" class="zw">
      <tr align="center">
        <td align="right">
        <%
 設置分頁頁碼開始===============================
 pagenmin=pagepagenc計算頁碼開始值
 pagenmax=page+pagenc計算頁碼結束值
 if(pagenmin<) then如果頁碼開始值小於則=
     pagenmin=
 end if

  if(page>) then如果頁碼大於則顯示(第一頁)
  responsewrite ("<a "& myself &"?page=><font color=#>第一頁</font></a> ") 
 end if
 if(pagenmin>) then如果頁碼開始值大於則顯示(更前)
  responsewrite ("<a "& myself &"?page="& page(pagenc*+) &"><font color=#>更前</font></a> ")
 end if

  if(pagenmax>pagec) then如果頁碼結束值大於總頁數則=總頁數
     pagenmax=pagec
 end if

  for i = pagenmin to pagenmax循環輸出頁碼
     if(i=page) then
  responsewrite ("<font color=#ff><strong>"& i &"</strong></font> ")
     else
  responsewrite ("[ <a href="& myself &"?page="& i &"><font color=#>"& i &"</font></a> ] ")
     end if
 next
 if(pagenmax<pagec) then如果頁碼結束值小於總頁數則顯示(更後)
  responsewrite ("<a "& myself &"?page="& page+(pagenc*+) &"><font color=#>更後</font></a> ")
 end if
 if(page<pagec) then如果頁碼小於總頁數則顯示(最後頁) 
  responsewrite ("<a "& myself &"?page="& pagec &"><font color=#>最後頁</font></a> ")
 end if
 設置分頁頁碼結束===============================
 %><script language="javascript">
<!
function gopage() {
windowlocationhref="<%=myself%>?page="+ pagevalue;
}
//>
</script>
    轉到
   <input name="page" type="text" value="<%=page%>" size="">頁
   <input type="button" name="submit" value="跳轉" ></td>
        </tr>
    </table>
<%
end if
%>
          <br>
          <table width="%" border="" align="center" cellpadding="" cellspacing="" class="zw">
  <tr>
    <td align="center">
      <p>
          <%
endt=timer()
rsclose
set rs=nothing
connclose
set conn=nothing
%>
          <%=formatnumber((endtstart)*)%>毫秒 </p>
      <p><a href="" target="_blank">STONE空間</a></p></td>
  </tr>
</table>
<br></td>
      </tr>
    </table></td>
  </tr>
</table>
</body>
</html>


From:http://tw.wingwit.com/Article/program/net/201311/14255.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.