网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网络编程 >> ASP教程 >> 正文
最新文章
· FSO 组件asp生成html静态页面碰到缓存
· asp实现长文章自动分页插件
· 在ASP中访问和更新Cookies集合
· ASP错误提示大全
· 学习ASP的几个观点
· ASP用两级联动下拉列表来显示大类和小
· ASP取当前页面地址和参数
· ASP删除记录的同时删除相关图片
· asp将查询结果导出到excel
· ASP批量导入Excel到Access或者Sql Se
热门文章
 化境ASP无组件上传类 - upload_5xs
 一个获取ACCESS数据库表名以及表名
 asp将查询结果导出到excel
 艾恩ASP无组件上传修改版
 ASP批量导入Excel到Access或者Sql 
 ASP读取数据库的Flash+JS图片切换特
 ASP用两级联动下拉列表来显示大类和
 ASP+JS实现网页歌曲连播、点播功能
 使用ASP重启服务器
 asp批量替换access数据库中指定字段
相关文章
海量数据库ASP完美分页代码
美化过类似动网的ASP分页类
一个简单易用的ASP分页代码
ASP用分页符实现长篇文章手动分页显示
ASP通用分页源代码
来源:百度空间 更新时间:2010/1/5 21:11:33 阅读次数:
字体:[ ] 我要投稿

这个分页代码使用很简单,只有4个步骤:
(1)构造 SQL 查询语句、设置数据库连接字符串、设置每页记录显示数目
(2)插入分页控制代码 <b>navigator_init.inc</b> 文件
(3)在页面的适当地方(即你想显示“上页、下页”的地方),插入分页导航代码 <b>navigator.inc</b>
(4)用循环显示本页记录

 

<一> 需要分页的 ASP 文件

sample.asp

<%
' 取得当前 ASP 页面的完整路径,重要技巧
theScript = Request.ServerVariables("SCRIPT_NAME")

' (1)构造 SQL 语句

myconnstr = "driver={SQL Server};server=yourserver;uid=sa;pwd=;database=yourdatabase"
thePageSize = 20 ' 每页显示的记录数

uSQL = "select * from yourtablename "

' (2)插入分页控制代码
%>
<!--#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>
<!--(3)插入分页导航代码-->
<!--#include file="../inc/control/navigator.inc"-->
</td>
</tr>
</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<!--(4)用循环显示本页记录-->

<% 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"))

' 用页面名字来唯一确定当前页面使用的 rs
' 由于不同目录下面可以有相同名字的文件,因此使用带完整路径的文件名
theCurrentRS = "rs" & theScript

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

' 由于在 listrecords 函数中,当显示完所有记录时将关闭 rs ,因此先把 rs.recordcount 保存起来
theRsCount = 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>

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号