网络编程
位置:首页>> 网络编程>> Asp编程>> 如何快捷地实现分页显示功能?

如何快捷地实现分页显示功能?

 来源:asp之家 发布时间:2010-01-01 15:08:00 

标签:分页,asp,功能

也许是这样的。下面我们来推荐一个简单的分页程序,代码和说明见下(两段虚线“-----”间的代码是实现该功能的重要语句):
chunfeng.asp

' 分页
<% 
----------------------------------------------------------------------------------------------------------------------
 theScript    = Request.ServerVariables("SCRIPT_NAME")
' 取得当前ASP页面的完整路径
 myconnstr    = "driver={SQL Server};server=yourserver;uid=sa;pwd=;database=yourdatabase"
' 构造 SQL 语句
    thePageSize  = 20    
' 每页显示的记录数
    uSQL        = "select * from yourtablename "
----------------------------------------------------------------------------------------------------------------------
%>
----------------------------------------------------------------------------------------------------------------------
<!--#include file="../inc/control/navigator_init.inc"-->
' 插入分页控制代码
----------------------------------------------------------------------------------------------------------------------
<html>
<head>
<title>精彩春风之分页高手test</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../default.css" type="text/css">
</head>
                      <!—此处放置我们的HTML代码//-->
                      <table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td>
----------------------------------------------------------------------------------------------------------------------
<!--#include file="../inc/control/navigator.inc"-->
<!--插入分页导航代码-->
----------------------------------------------------------------------------------------------------------------------
                          </td>
                        </tr>
                      </table>
                      <table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td>
----------------------------------------------------------------------------------------------------------------------
    <% For i = 1 To rs.pagesize %>
<!—用循环显示本页记录-->
----------------------------------------------------------------------------------------------------------------------
                      <!-- 记录显示代码//-->
    <%
        rs.MoveNext
        If rs.EOF Then
            Exit For
            rs.close
            conn.close
        End If
    next 
    %>
                          </td>
                        </tr>
                      </table>
</body>
</html>

navigator_init.inc

' 分页控制代码
<%
    theCurrentPageNum    = clng(request("pn"))
    theCurrentRS        = "rs" & theScript
    ' 用页面名字来唯一确定当前一页面使用的 rs,因为不同目录下面可能有名字相同的文件,因此必须使用带完整路径的文件名
    If theCurrentPageNum = 0 Then
        Set conn = Server.CreateObject("ADODB.Connection")
        conn.open myconnstr
        set rs = server.createobject("adodb.recordset")    
        rs.open uSQL,conn,1,3
        if rs.recordcount > 0 then
            rs.PageSize            = thePageSize
            rs.AbsolutePage        = 1
            theCurrentPageNum    = 1
            Set Session(theCurrentRS) = rs
        end if
    else
        Set rs = Session(theCurrentRS)
        if rs.recordcount > 0 then
            rs.AbsolutePage    = theCurrentPageNum
        end if
    End If 
----------------------------------------------------------------------------------------------------------------------
' 导航条
    href_first    = theScript & "?mo=0&pn=1"
    href_prev    = theScript & "?mo=0&pn=" & (theCurrentPageNum-1)
    href_next    = theScript & "?mo=0&pn=" & (theCurrentPageNum+1)
    href_last    = theScript & "?mo=0&pn=" & rs.pagecount
    strnav_first= "<a href=" & href_first & ">第一页</a>"
    strnav_prev    = "<a href=" & href_prev & ">前一页</a>"
    strnav_next    = "<a href=" & href_next & ">后一页</a>"
    strnav_last    = "<a href=" & href_last & ">最末页</a>"
----------------------------------------------------------------------------------------------------------------------
    if rs.pagecount > 1 then
        ' 在第一页
        if theCurrentPageNum = 1 then
            strnav_first= "第一页"
            strnav_prev = "前一页"
        end if
        '在最末页
        if theCurrentPageNum = rs.pagecount then
            strnav_next = "后一页"
            strnav_last = "最末页"
        end if
    else
        strnav_first= "第一页"
        strnav_prev = "前一页"
        strnav_next = "后一页"
        strnav_last = "最末页"
    end if
    strnav = strnav_first & " " & strnav_prev & " " & strnav_next & " " & strnav_last
    theRsCount = rs.recordcount 
' 由于在 listrecords 函数中,显示完所有记录时将关闭rs,因此要先把rs.recordcount保存起来
%>

navigator.inc

' 分页导航
<table width="300" border="0" align="right" cellpadding="0" cellspacing="0" height="30">
  <form action="<%=theScript%>" method="post" name="form_nav" onsubmit="javascript:return checkpn(this);">
    <tr>
      <td align="right">
            <%=rs.recordcount%> 条 <%=rs.pagecount%>页 第<input type="text" name="pn" value="<%
=theCurrentPageNum%>" size=2 maxlength=4 class="form_text_underline">页 <%= strnav %>
      </td>
    </tr>
  </form>
</table>
<script language="javascript">
// 判断用户输入的页码是否合法
function checkpn(form)
{
    pn = form.pn ;
    if (pn.value=="")
        { alert("请输入页码") ;pn.select();return false;}
    if (!uisNum(pn.value))
        { alert("页码是数字") ;pn.select();return false;}
    if (pn.value-<%=rs.pagecount%>>0)
        { alert("页码不能大于<%=rs.pagecount%>") ;pn.select();return false;}
    
    return true;
}
function aLength(str)
{
  var i,len;
  len=0;
  for(i=0;i<str.length;i++)
  {
    if(str.charCodeAt(i) > 255)
      len++;
    len++;
  }
  return len;
}
function trimString(str)
{
  var i,j;
  if(str == "") return "";
  for(i=0;i<str.length;i++)
    if(str.charAt(i) != ' ') break;
  if(i >= str.length) return "";
  for(j=str.length-1;j>=0;j--)
    if(str.charAt(j) != ' ') break;
  return str.substring(i,j+1);
}
function uisNum(str)
{
  var i, cChar;
    str = trimString(str);
  for(i=0;i<str.length;i++) 
  {
    cChar = str.charAt(i);
    if( !(("0"<=cChar) && (cChar<="9")) )
      return false;
  }
  return true;
}
</script>

0
投稿

猜你喜欢

  • 又发现一个IE不标准的地方,unshift方法会返回新数组的长度,但IE6与IE7则返回undefined。var a = [3,2,1,4
  • 这个效果前些日子有人在论坛问起,今天有空研究了下。我打了原创标记,因为我在写这个方法时的确没有参考过别人的代码。我的方法其实就是层遮罩加AL
  • 语言是信息传播的主要障碍。多语言网站,顾名思义就是能够以多种语言(而不是单种语言)为用户提供信息服务,让使用不同语言的用户都能够从同个网站获
  • 在做数据库备份和还原数据库的时候出现"错误2812:未能找到存储过程’master.dbo.xp_fileexist’"
  • 前言:看本教程,必须先仔细看前言的内容,否则会进入误区!最近在做个性休闲服装内网站的设计课程,过程中发现,个性元素的应用成为最难的问题,第一
  • 为了组织search线的设计师交流会,特地去准备了一些资料。《SERP 2010》是其中一个,但是由于时间关系没有进行讨论。原著是英文报告,
  • 对于注入而言,错误提示是极其重要。所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要。本问讨论
  • 原文地址:30 Days of Mootools 1.2 Tutorials - Day 7 - Set and Get Style Pro
  • 临近下班的时候,突然想到统计热门文章的问题。以前我所知道的热门文章统计,基本有这么几种:按点击数排序 该方法最大的问题在于热门的文章会越来越
  • 不同于其他软件项目,互联网项目的开发有其独有的特性。互联网项目开发不同于传统软件项目开发不同于需求定制性的软件开发公司。客户的需求是明确的,
  • 把这两个很普遍性的网友比较关心的问题总结回答一下。in和exist的区别从sql编程角度来说,in直观,exists不直观多一个select
  • 出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-
  • 用Dreamweaver制作网页时,如果插入的图片、GIF动画、声音、视频或链接的网页是用中文命名的,在用IE浏览器浏览时可能显示不出来。以
  • 这是 COMSHARP CMS 团队翻译的2009年海外Web设计风潮的第二部分,着重讲解了反 Box 式布局,单页布局,多栏布局,巨型插图
  • asp程序运行速度试验实验:1。作相同的分支条件判断:IF  比  SELECT慢。用以下程序测试:
  • 很多人喜欢把一个网站中相同的部分象是统一的页面logo,版权声明等做成一个过程,然后放到一个include文件中,这样所有的页面就都可以使用
  • 做设计类网址导航的初衷是为了资源整合,也是在尝试解决问题。假定访问用户都是行业人士,或者目地性很强的有一定了解的用户,应该如何考虑这个组织系
  • 一、在访客的内心深处做导航我讨厌迷失,不管是在道路上或是在线网络上。猜想一下?您的访客也是这样的。就像我们期望看到的道路上的路标一样,来帮助
  • 我们都一定对比过编程的轻松与简单性。虽然我们都确认php和perl是最容易学习和编程的语言,但我仍旧想知道,如果用php、asp、jsp以及
  • 您是否常常在做网页的过程中发现一个问题呢?当图片上传的时候,如果图片太大 ,就会把网页撑破,唯一做的就要先把它用软件缩小,再上传上
手机版 网络编程 asp之家 www.aspxhome.com