如何快捷地实现分页显示功能?
来源:asp之家 发布时间:2010-01-01 15:08:00
也许是这样的。下面我们来推荐一个简单的分页程序,代码和说明见下(两段虚线“-----”间的代码是实现该功能的重要语句):
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>


猜你喜欢
- 关于数据库的逻辑设计,是一个很广泛的问题。本文主要针对开发应用中遇到在MS SQL Server上进行表设计时,对表的主键设计应注意的问题以
- 本文实例讲述了Python使用re模块正则提取字符串中括号内的内容操作。分享给大家供大家参考,具体如下:直接上代码吧:# -*- codin
- 好不容易有个周末,不能闲着,趁着这个时间安装sql server2016正式版,下载那个安装包都用了一个星期安装包可以从这里下载:http:
- 空mysqll表内容常见的有两种方法:一种delete,一种是truncate 。 不带where参数的delete语句可以删除mysql表
- 这篇文章主要介绍了Python爬虫解析网页的4种方式实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 在Pandas中读取CSV数据时,会默认将第一列设为索引列index。但有时候我们并不需要索引,或者希望指定自己的索引列。这时就需要在导入C
- 前提准备:1.使用python requests模块2.了解json3.zabbix api的具体调用建议先浏览一下官网先上代码:impor
- 前言daemon 音标 : [‘di:mən] , 中文含义为守护神或精灵的意思 . 其实它还有个意思 : 守护进程 .Daemon程序是一
- 就在刚才,我给GMAIL安装了Twitter插件。安装完插件后,Gmail提示我要连接Twitter的账号才能使用:我顺着提示操作下去,就看
- 一、Python pass语句在实际开发中,有时候我们会先搭建起程序的整体逻辑结构,但是暂时不去实现某些细节,而是在这些地方加一些注释,方面
- 通过神经网络实现线性回归的拟合训练过程只训练一轮的算法是:for 循环,直到所有样本数据使用完毕:读取一个样本数据前向计算反向传播更新梯度P
- 首先要说明的是,这个标题有点标题党的意思,这个 bug 也存在于 IE8 下,在 IE6 和 IE7 下正常。之前写过两篇关于 I
- 安装lodashnpm i --save-dev @types/lodash在组件中引入lodashimport * as _ from &
- 下面我们自己在 Linux 下做一个动态库(.so 文件 - Shared Object),然在用 Go 来使用它。本文所用的操作系统为 U
- 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针.数据库索引的设计原则:为了使索引的使用效率更高,在创
- Swin TransformerSwin Transformer是一种用于图像处理的深度学习模型,它可以用于各种计算机视觉任务,如图像分类、
- 误区 #7:一个数据库可以存在多个镜像 错误 这个误区就有点老生常谈了。每一个主体服务器只允许一个镜像服务器。如果你希望存在多个主体服务器的
- 先来看段mysql查询文章回复语句:#查询文章回复-- ------------------------------ Procedure s
- 用python画图很多是根据z=f(x,y)来画图的,本博文将三个对应的坐标点输入画图:散点图:import matplotlib.pypl
- 常用的转换函数是 cast 和 convert,用于把表达式得出的值的类型转换成另一个数据类型,如果转换失败,该函数抛出错误,导致整个事务回