记录集分页-方法1

来源:互联网 发布:大乐透算法 编辑:程序博客网 时间:2024/05/01 16:08

注:本分页方法参考别人的方法,然后根据自己的理解整理而成。

因里面用的分页记录集对象是rs,所以本分页程序针对rs.open sql,conn,1,1这个记录集,如果要对其它记录集进行分页,可再自行修改一下里面的代码。

本程序优点:
1、可让用户选择每页多少条记录
2、提供下面的数据及功能:共xxx条数据 当前x/xx页  首页 上页 下页 尾页  跳到x页

本方法共4个部分,即可作为了4个单独的文件,在ASP中用include调用,也可直接在asp页面中使用

'第一部分:
<%
''''作者:allfuly     博客:http://blog.csdn.net/allfuly/
'''放在set conn=getconn()即建立数据库连接对象之前
%>
<script language="javascript">
function f_gopage(page){
 form2.page.value = page;
 form2.pagesize.value = form1.pagesize.value;
 form2.submit();
 return false;
}

</script>
<form name="form1">
<table width="495" border="0" cellpadding="0" cellspacing="0">
<tr><td width="495">
 </tr>
</table>
<table width="100%" align="center" border="0">
<tr><td>
 <select name="pagesize" onChange="f_gopage(1);">
   <option value ="8" selected>每页显示8条记录</option>
   <option value ="12">每页显示12条记录</option>
   <option value ="20">每页显示20条记录</option>

   </select>
</td><tr>
</table>

 

''第二部分
<%
 rem 紧放在rs.open sql,conn,1,1即执行SQL语句的后一句
 '当前页数
 if request("page") <> ""  then  curpage = cint(request("page")) else curpage = 1
  '每页显示记录数
 if request("pagesize") <> "" then pagesize = cint(request("pagesize")) else pagesize = 12
 recordcount = rs.recordcount
 rs.pagesize = pagesize
 pagecount = int(recordcount / pagesize)
 if  recordcount mod pagesize <>  0  then  pagecount = pagecount + 1
 if recordcount <> 0  then  rs.AbsolutePage = curpage
 rowcount = pagesize
rem 一定要把do while not rs.eof 改成do while not rs.eof and rowcount>0,否则分页时会出现问题
%>

 

''第三部分
 <%
 '''放在rs.movenext的前面一行
   rowcount = rowcount - 1
 %> 

 

'''第四部分
<% ''放在rs.close前面 %>
<table width="100%">
  <tr>
  <td align="left" width="30%">共<%=recordcount%>条数据</td>
  <td align="center" width="30%">当前<%=curpage%>/<%=pagecount%>页</td>
  <td align="right" width="40%">
  <%
    go = 0
   if curpage -1 > 0 then
  go = 1
    response.write "<a href=""javascript:f_gopage(1);"" class=""pg"">首页</a>&nbsp;"
    response.Write "<a href=""javascript:f_gopage(" & (curpage - 1) & ");"" class="" pg "">上页</a>&nbsp;"
   end if
   if curpage < pagecount  then
  go = 1
    response.write "<a href=""javascript:f_gopage(" & (curpage + 1) & ");"" class=""pg"">下页</a>&nbsp;"
    response.write "<a href=""javascript:f_gopage(" & pagecount & ");"" class=""pg"">尾页</a>&nbsp;"
   end if
 if go =1 then
  %>
   跳到<select name="gopage" onChange="javascript:f_gopage(form1.gopage.value)">
   <%
    for i = 1 to pagecount
  response.Write "<option value='"&i&"'>"&i&"</option>"
    next
   %>
   </select>页
  <%else%>
    <input type="hidden" name="gopage" value="">
  <%end if%>
   </td>
  </tr>
</table>
<input type = "hidden" name = "strid" value="<%=strid%>">
</form>


<form name="form2" action="" method="post">
 <input type = "hidden" name = "page" value="<%=curpage%>">
 <input type = "hidden" name = "pagesize" value="<%=pagesize%>">
</form>
<script language="javascript">
 form1.pagesize.value = "<%=pagesize%>";
 form1.gopage.value = "<%=curpage%>"
</script>

 

至此,4个部分全部写完了

调用示例:

<!--#include file="gopage11.asp"-->
<%
set conn=getconn()
set rs=server.createobject("adodb.recordset")
sql="select * from test order by fid"
rs.open sql,conn,1,1
%>
<!--#include file="gopage12.asp"-->

<table border="1" width="100%" align="center" cellpadding="0" cellspacing="0" class="table_main">
 <tr class="tr_header">
  <td align="center">c1</td>
  <td align="center">c2</td>
  <td align="center">c3</td>
  <td align="center">c4</td>
  <td align="center">c5</td>
  <td align="center">c6</td>
 </tr>
<%
if rs.eof then
 response.write("</table><br><font color='#ff0000'>没有记录</font>")
end if 

dim aa
aa=2
while not rs.eof and rowcount>0
%>
 <% if aa mod 2 =1 then
  response.Write("<tr bgcolor='#F8F0ED'>")%>
 <%else%>
  <tr>
 <%end if
 aa=aa+1
 %> 
  <td align="center"><%=rs("fid")%></td>
  <td align="center"><a href="query_mobile_area.asp?fstate=0&fmobile=<%=rs("haomaduan")%>" onClick="return newwin(this.href)"><%=rs("haomaduan")%></a></td>
     <td align="center"> <%=("fstate")%></td> 
  <td align="center"><%=rs("op_id")%></td>  
  <td align="center"><%=rs("fusername")%></td>
  <td align="center"><%=rs("tjdate")%></td>
  </tr>
 <!--#include file="gopage13.asp"-->  
  
 <%
   rs.movenext
  wend
 %> 
 </table>

 

<!--#include file="gopage14.asp"-->

 

 

原创粉丝点击