ASP 分页技巧

分页|技巧

效果
首页 上十 上一 1 2 3 4 5 6 7 8 9 10  下一 下十 尾页 转到___
页数:1/25页  篇数:125

主文件 nclass.asp
包含文件 top.asp || bottom.asp || abbrword.asp || conn.asp

内容

---/-----------------------------------------------------------

nclass.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="Connections/conn.asp" -->
<% 
'subject : ASP 分页技巧                                                    
                                                                        
'author  : Stabx<shawl.qiu@gmail.com>                              
                                                                        
'blog  : http://btbtd.exblog.jp/ / http://my.opera.com/btbtd/    
                                                                        
'blog name : Phoenix.GI - P.GI                                       
                                                                        
'date  : 2006-4-19                                               

' rsn.PageCount / 总页数
' pageview / 当前页数
Dim I '定义循环变量
Dim RPP 'RPP:指定每页显示的记录数, 
Dim pageview '翻页变量
I=1  '从 1 开始
RPP=50 '每页显示 50 条记录
pageview=CInt(Request("pageview"))  '读取 URL 页号
Dim rsn '定义链接名 
Set rsn = Server.CreateObject("ADODB.Recordset")  '建立一个 rsn 数据库查询
rsn.ActiveConnection = MM_conn_STRING '这是 DW 的链接字符串
' rsn 链接方式
rsn.Source = "SELECT * FROM article WHERE classid="&request.QueryString("classid")&" and nclassid="&request.QueryString("nclassid")&" ORDER BY articleid DESC" 
' rsn 查询语句, SELECT 所有列 FROM 表 WHERE 条件 ORDER BY 条件
rsn.CursorType = 1 '游标属性
rsn.CursorLocation = 2  '游标位置
rsn.LockType = 1 
' 定义数据库查询模式
rsn.Open() 
' 打开数据库链接

if not rsn.eof then '显示不为空的数据
end if

rsn.PageSize=RPP 
' 定义每页显示记录数
If pageview<=0 Then pageview=1 '如果 pageview 小于或等于0, 返回值1
If pageview>rsn.PageCount Then pageview=rsn.PageCount ' 如果 pageview 大于分页总数, 返回分页末页值 
rsn.AbsolutePage=pageview '定义当前页码

Sub ShowPageInfo(tPageCount,cPageNo)  '定义子例程 ShowPageInfo, 显示页数和总页
Response.Write cPageNo&"/"&tPageCount&"页" '显示当前页和总页数
End Sub 

Sub ShowPageNavi(tPageCount,cPageNo)  
' 定义子例程 ShowPageNavi, 显示分页号
If cPageNo<1 Then cPageNo=1 
' 如果页数小于 1, 默认为 1
If tPageCount<1 Then tPageCount=1 
If cPageNo>tPageCount Then cPageNo=tPageCount  
Dim NaviLength 
NaviLength=10 ' 显示数字链接个数
Dim I,StartPage,EndPage ' 定义当前页, 开始页, 结束页
StartPage=(cPageNo\NaviLength)*NaviLength+1  '为开始页赋值

if pageview=1 then '判断是否首页, 如果是首页不添加链接,反之添加.
Response.Write "<font color=""#CCCCCC"">首页</font> " '显示没有添加链接热点的"首页"
Else 
Response.Write "<a href="&nc1_&rqsc_&nc2_&rqsnc_&nc3_&"1>首页</a> " '首页链接
End If  

If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength  
EndPage=StartPage+NaviLength-1 
If EndPage>tPageCount Then EndPage=tPageCount  

If StartPage>1 Then '向后移动一分页, 十页为一分页
Response.Write "<a href="&nc1_&rqsc_&nc2_&rqsnc_&nc3_&(cPageNo-NaviLength)&">"&previous10_&"</a> " 
Else 
Response.Write "<font color=""#CCCCCC"">"&previous10_&"</font> " 
End If 

If pageview <> 1 and pageview <>0 Then '后移一页
Response.Write "<a href="&nc1_&rqsc_&nc2_&rqsnc_&nc3_&(pageview-1)&">"&previous1_&"</a> " 
Else 
Response.Write "<font color=""#CCCCCC"">"&previous1_&"</font> " 
End If 

For I=StartPage To EndPage 

If I=cPageNo Then 
Response.Write "<b>"&I&"</b>" 
Else 
Response.Write "<a href="&nc1_&rqsc_&nc2_&rqsnc_&nc3_& I & ">" & I & "</a>" 
End If 

If I<>tPageCount Then Response.Write " " 
Next 

If pageview <> rsn.PageCount and pageview <>0 Then '前移一页
Response.Write " <a href="&nc1_&rqsc_&nc2_&rqsnc_&nc3_&(pageview+1)&">"&next1_&"</a> " 
Else 
Response.Write "<font color=""#CCCCCC"">"&next1_&"</font> " 
End If 

If EndPage<tPageCount Then  '向后移动一分页, 十页为一分页
Response.Write " <a href="&nc1_&rqsc_&nc2_&rqsnc_&nc3_&(cPageNo+NaviLength)&">"&next10_&"</a> " 
Else 
Response.Write " <font color=#CCCCCC>"&next10_&"</font> " 
End If 

if  rsn.PageCount<>pageview then '判断是否尾页
Response.Write "<a href="&nc1_&rqsc_&nc2_&rqsnc_&nc3_&rsn.PageCount&">尾页</a>" 
Else 
Response.Write "<font color=""#CCCCCC"">尾页</font>"
End If  

End Sub 

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<!--#include virtual="top.asp"-->
<div class="c"</div>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<div CLASS="center">
 <form NAME="pageform" ID="pageform">
 <% showPageNavi rsn.PageCount,pageview %>   
 <select NAME="menu1" >
   <% for i=1 to rsn.PageCount %>
  <option VALUE="<%="nclass.asp?classid="&rqsc_&"&nclassid="&rqsnc_&"&pageview="&i%>"
  <% if pageview=i then%> selected <%end if%>>
    第<%=i%>页
  </option>
  <%next%>
   </select>
 </form> 
</div>
<% 
If rsn.EOF OR rsn.BOF Then 
Else 
For I=1 To RPP 
%> 
<!-- <%=(pageview-1)*RPP+I%> --> 
<p/>
<%=rsn("dateandtime")%> <a href="<%=t1_&rsn("classid")&t2_&rsn("nclassid")&t3_&rsn("articleid")%>"><%= rsn("title") %></a>
<% 
rsn.MoveNext 
If rsn.EOF OR rsn.BOF Then Exit For 
Next 
End If 
%> 
<div CLASS="center">
 <form NAME="pageform" ID="pageform">
  <% showPageInfo rsn.PageCount,pageview %>
  
 <% showPageNavi rsn.PageCount,pageview %>   
 <select NAME="menu1" >
   <% for i=1 to rsn.PageCount %>
  <option VALUE="<%="nclass.asp?classid="&rqsc_&"&nclassid="&rqsnc_&"&pageview="&i%>"
  <% if pageview=i then%> selected <%end if%>>
    第<%=i%>页
  </option>
  <%next%>
   </select>
 </form>
 <%= pageNum_ %>:<% showPageInfo rsn.PageCount,pageview %> 
 <%= articleNum_ %>:<% Response.Write(rsn.RecordCount) %><br/>
</div>
<!--#include virtual="bottom.asp"-->
</body>
</html>

---/-----------------------------------------------------------

top.asp

<link HREF="css.css" REL="stylesheet" TYPE="text/css">
<!--#include virtual="include/abbrword.asp"-->
<!--#include virtual="include/columnclass.asp"-->
<%
'set home link
Dim siteinfoHomelink
Dim siteinfoHomelink_numRows

Set siteinfoHomelink = Server.CreateObject("ADODB.Recordset")
siteinfoHomelink.ActiveConnection = MM_conn_STRING
siteinfoHomelink.Source = "SELECT * FROM siteinfo"
siteinfoHomelink.CursorType = 0
siteinfoHomelink.CursorLocation = 1
siteinfoHomelink.LockType = 1
siteinfoHomelink.Open()

siteinfoHomelink_numRows = 0

homeurl=siteinfoHomelink.Fields.Item("siteurl").Value
sitename=siteinfoHomelink.Fields.Item("sitename").Value
home = "<a href="&(siteinfoHomelink.Fields.Item("siteurl").Value)&">"&(siteinfoHomelink.Fields.Item("sitename").Value)&"</a>"
pageurl=homeurl&request.ServerVariables("URL")&"?"&request.ServerVariables("QUERY_STRING")
pagelink="<a href="&pgeurl&">"&pageurl&"</a>"

%>

---/-----------------------------------------------------------

bottom.asp

<%
Dim rsSiteinfo
Dim rsSiteinfo_numRows

Set rsSiteinfo = Server.CreateObject("ADODB.Recordset")
rsSiteinfo.ActiveConnection = MM_conn_STRING
rsSiteinfo.Source = "SELECT * FROM siteinfo"
rsSiteinfo.CursorType = 0
rsSiteinfo.CursorLocation = 1
rsSiteinfo.LockType = 1
rsSiteinfo.Open()

rsSiteinfo_numRows = 0
%>
<div class="center"><%=(rsSiteinfo.Fields.Item("project").Value)%> | <%=(rsSiteinfo.Fields.Item("sitecopyright").Value)%> <a href="<%=(rsSiteinfo.Fields.Item("siteurl").Value)%>"><%=(rsSiteinfo.Fields.Item("sitename").Value)%></a></div> <br />
  <div class="center"><%= siteFoundtime_ %><%=(rsSiteinfo.Fields.Item("sitefoundtime").Value)%> <%= siteAdmin_ %><a href="<%=(rsSiteinfo.Fields.Item("siteadmin").Value)%>

时间: 2024-12-31 11:56:02

ASP 分页技巧的相关文章

ASP.NET技巧:access下的分页方案

access|asp.net|分页|技巧 具体不多说了,只贴出相关源码~ using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.OleDb;using System.Web; /**//// <summary>/// 名称:access下的分页方案(仿sql存储过程)/// 作者:cncxz(虫虫)/// blog:http://cncxz.cnbl

ASP.NET技巧:DataGridView 的分页处理

asp.net|datagrid|分页|技巧 只是解决DataGridview刷新慢的办法.如果要考虑效率,还是结合分页的"存储过程"比较好,只是变通了一下.   1        #region 数据处理  2         /// <summary>  3         /// 得到期初数据  4         /// </summary>  5         private void getFillDateset()  6         {  7

ASP.NET技巧:在存储过程中实现分页

asp.net|存储过程|分页|技巧     我不是一个很有经验的程序员,在做项目的过程中会遇到很多的问题,在数据库中使用分页就是我做项目中遇到的一个问题.我从网上查了很多资料,有很多种方法.但我觉的创建临时数据表是最简单的方法,在我做Membership扩展时发现原来微软也是这样用的,你可一随便打开一个Membership的存储过程看看.     说了再多也没用,只要看看代码就清楚了,呵呵.      1CREATE PROCEDURE dbo.CreateSimple 2( 3 @PageI

ASP.NET技巧:一个通用的分页类

asp.net|分页|技巧 结合一个存储过程,将分页做成最简单,请看以下源码 此分页类所操作的存储过程#region 此分页类所操作的存储过程/**//********************************************************* *  * 功能强大,配合以下这个存储过程  *  * *******************************************************//**//*-- Pager 1,10,0,0, 'Employe

ASP.NET技巧:GridView控件自定义分页详解

asp.net|分页|技巧|控件|详解   前些天我写了关于 <<在存储过程中实现分页>>和<<GridView控件事件详解 >> ,后来又有一些人问我怎样在GridView中应用这个东东!其实很简单,主要是怎么保存当前页面的页码PageIndex问题,不过把这个解决了什么都好办了.因为在分页过程中:PageSize是一定的,我们可以用一个属性来表示.保存PageIndex好多中方法,而且数据不是很庞大,基本不会好太多的资源.还是一句老话,话再多都没有例子直

ASP.NET技巧:DataGrid传统分页方式

此分页方式与传统ASP分页方式相仿. DataGridPage.aspx 以下为引用的内容:<%@ Page language="c#" Codebehind="DataGridPage.aspx.cs" AutoEventWireup="false" Inherits="netCRM.DataGridPage" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4

ASP实用技巧:关于分页查询和性能问题

分页|技巧|问题|性能 分页查询是经常能够遇到的问题,我们首先看看分页查询存在的理由: 方便用户:用户不可能一次察看所有数据,所以一页一页的翻看比较好. 提高性能:一次从数据库中提取所有数据会比较慢. 那么现在我来尝试反驳上述理由: 真的方便吗?我们考虑下面的情况 如果数据只有20条. 如果数据超过1000条.第一种显然不必分页查询.奇怪的是第二种也不必,因为没有哪个用户愿意一页一页的翻到最后,如果用户查询到的数据超过了他所关心的数据范围,我认为应该让他重新输入查询条件,就像我们使用google

彻底掌握ASP分页技术杂谈_应用技巧

近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者,但里面只有代码,没有详细的解释,对于初学者来说,这样总是得不到真正的掌握,此次我将针对分页技术进行详解,让大家来理解ASP分页,好了,一起来对分页程序来次透彻的了解吧! 首先,来看看演示 !看看功能:分页程序首先读取每页预置的记录条数,在此是5条,其它将在下页中显示,同时提示当前页数.总页数.总记录数,当显示的页数为第一页时,"首页"."上一页"链接失效,当显示的页数为最后页时,"下一页&qu

ASP分页时计算页面总数的几种算法小结_应用技巧

下面是我从网上找到三种ASP分页时计算页面总数的方法,此方法仅为分页时计算页面总数,并非整个分页代码: 方法一 复制代码 代码如下: ' HTMer_RecordCount为要计算的页面总数 ' HTMer_RecordCount为记录集数 ' HTMer_PageSize为每页记录数 If HTMer_RecordCount Mod HTMer_PageSize=0 Then HTMer_PageCount=Int(HTMer_RecordCount/HTMer_PageSize) Else