ASP ajax分页教程一

为什么我写ASP分页教程要提到AJAX呢,因为我们要多练习一下编程过程中,结构化的重要性.
再加上很多朋友对分页感到很高深,所以一直都不敢去碰他,要么就用别人写好的组件,要么就是改改别人的东西.特别是.net,我深有感触,假如要快速开发一个项目,我想.net是一个非常优秀的平台.但是,因为他的严重控件化,反而是新手接触不到编程的思想,完全找不到编程的感觉,仿佛就象在搭积木.有时候还是要练习一下底层一点的东西,这样个人的技术能力才会得到提高.我可不想做只会用.NET的组装工人.
好了,下面给出ASP分页的源代码给大家,都进行了详细的注释,一般都可以看的懂.
因为这个是教程一,所以就从最简单的开始,我直接使用的AbsolutePage来定义当前页面,所以没有用诸如MoveFirst这种比较复杂的游标方式,而且分页也是用的下拉选择框,等下个教程我再写一下进阶分页方法,给出前进十页,后退十页,只显示目前所在的十页分组的方法.
ASP虽然是一个过时的东西,不过因为他可以使用JS来写,所以我感觉要做一个项目DEMO的时候,使用ASP要比.NET或者JAVA更方便,因为他不用安装体积庞大的环境.简简单单配置一下就可以了.真要大规模项目开发的话,我肯定还是会用.NET或JAVA的,因为这样就会涉及到效率问题了. 


代码如下:

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<%
//定义数据库连接语句
var connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+Server.MapPath("database/vote.mdb");
//建立一个rs数据库查询
var rs = Server.CreateObject("ADODB.Recordset")
//rs连接方式
rs.ActiveConnection = connstring
//rs查询语句(按照用户提交时间倒序查询)
rs.Source = "select * from users order by usetime DESC"
//定义数据库查询模式
rs.CursorType = 3
rs.CursorLocation = 3
rs.LockType = 1
//定义每页显示数据数量
rs.PageSize = 10
//打开数据库连接
rs.Open()
//定义数据库纪录总数,分页总数,URL路径
var counts,pagecos,thisUrl
counts = rs.RecordCount
pagecos = rs.PageCount
thisUrl = Request.ServerVariables("URL")
//如果游标在表中就执行
if(!rs.EOF || !rs.BOF){
//如果url的page参数不为空就执行
if(Request("page").Count != 0){
//定义默认链接字符串,第一页,尾页,上页,下页
//URL的page值(指定的当前页),当前页,当前每页显示数据数量
var defaltStr,firstpage,lastpage,prepage,nextpage,pages,nowPage,nowSize
defaltStr = '<a href="'+thisUrl+'?page='
firstpage = defaltStr+'1">首页</a>'
lastpage = defaltStr+pagecos+'">尾页</a>'
pages = Request("page")
//如果处于第一页
//首页,上一页不为链接
if(pages <= 1){
rs.AbsolutePage = 1;
firstpage = '首页'
prepage = '上一页'
nextpage = defaltStr+'2">下一页</a>'
//如果处于最后一页
//尾页,下一页不为链接
}else if(pages >= pagecos){
rs.AbsolutePage = pagecos;
prepage = defaltStr+(pagecos-1)+'">上一页</a>'
lastpage = '尾页'
nextpage = '下一页'
}else{
rs.AbsolutePage = pages
prepage = defaltStr+(Number(pages)-1)+'">上一页</a>'
nextpage = defaltStr+(Number(pages)+1)+'">下一页</a>'
}
}
nowPage = rs.AbsolutePage
nowSize = rs.PageSize
//如果处于最后一页,并且数据显示数量与每页显示数据数量不相等时
//因为最后一页不可能每次都刚好与每页显示数据数量相等
//所以需要定义一个不相等的方法
if(nowPage >= pagecos && (pagecos*rs.PageSize)%counts != 0){
nowSize = counts%rs.PageSize
}
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="userinfo">
<tr>
<td align="center">
<!--显示首页,上一页 -->
<%=firstpage%> <%=prepage%> 
跳转到第 <select onchange="location.href='<%=thisUrl%>?page='+this.value">
<%
//分页依靠循环显示
for(var num=1; num<=pagecos; num++){
if(nowPage == num){
%>
<option value="<%=num%>" selected="selected"><%=num%></option>
<%
}else{
%>
<option value="<%=num%>"><%=num%></option>
<%
}
}
%>
</select> 页
<!--显示下一页,尾页 -->
 <%=nextpage%> <%=lastpage%>
<!--显示当前页数,总页数,总记录数,每页显示数据数量 -->
 共 <%=nowPage%> / <%=pagecos%> 页 <%=counts%> / <%=rs.PageSize%> 条记录
</td>
</tr>
<%
//内容依靠循环显示
for(var i=1;i<=nowSize;i++){
%>
<tr>
<td><span>用户IP:</span><%=rs("usip")%></td>
</tr>
<tr>
<td><span>建议:</span><%=rs("us1")%></td>
</tr>
<tr>
<td><span>提交时间:</span><%=rs("usetime")%></td>
</tr>
<%
//数据库游标向移向下一条记录
rs.MoveNext();
}
%>
</table>
<%
//如果数据库游标不在数据库列中
}else{
Response.Write("没有用户信息!")
}
//关闭数据库连接
rs.Close()
%>

(0)

相关推荐

  • ajax初级教程之获取博文列表

    在写这个Demo时,原本是想直接访问小菜博客的rss,但这是明显的跨域访问,是不允许的. 因此,小菜把博客rss保存到了本地,就是一个xml格式文件,直接用AJAX请求本地的xml文件. 通过本例,展示了如下技术: l  AJAX的核心类XMLHttpRequest的使用. l  AJAX通过GET方式获取服务端xml文件. l  利用Javascript操作xml文件. l  利用Javascript更新html界面.          Demo概要说明: index.html作为主页,引用a

  • ThinkPHP中ajax使用实例教程

    本文实例讲述了ThinkPHP中使用ajax的方法,提交表单如下图所示: 点击提交,不需要刷新本页,将内容提交到数据库当中,并在本页显示提交的内容.如下图所示: 一.jquery实现方法: MessageAction.class.php页面代码如下: <?php class MessageAction extends Action{ function index(){ $this->display(); } function add(){ //ajaxReturn(数据,'提示信息',状态)

  • jquery 框架使用教程 AJAX篇

    小试了下AJAX,感觉比prototype简洁多了,在JQuery中,AJAX有三种实现方式:$.ajax(),$.post,$.get(). XHTML(主要): <div id="result" style="background:orange;border:1px solid red;width:300px;height:400px;"></div> <form id="formtest" action=&qu

  • jquery1.4 教程二 ajax方法的改进

    1 允许序列化嵌套的参数. 比如:{foo: ["bar", "baz"]} 将被序列化成foo[]=bar&foo[]=baz,而不是序列化成以前的foo=bar&foo=baz. 如果你想要使用旧的序列化方式,有三种设置方法: 复制代码 代码如下: jQuery.ajaxSettings.traditional = true; jQuery.param( stuff, true ); $.ajax({ data: stuff, tradition

  • Ajax+PHP简单基础入门实例教程

    首先我们来了解怎么在javascript中创建这个对象: 程序代码 var xmlHttp = new XMLHttpRequest(); 这行简单的代码在 Mozilla.Firefox.Safari.Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了 XMLHttpRequest 对象.但是对于市场占有率达到70%的IE来说,这种方法是不行的,而不同的IE版本还有不同的创建方法,所以我们需要在IE下面使用下面两种创建对象的办法: 程序代码 t

  • 分享精心挑选的12款优秀jQuery Ajax分页插件和教程

    Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 jQuery 框架很容易实现各种基于 Ajax 技术实现的功能.我们一起来看看下面这些优秀的分页插件. 1.Client-side jQuery pagination plugin : jPages jPages 是一款非常不错的客户端分页插件,有很多特色,例如自动播放.按键翻页.延迟加载等等. 浏览详情  在线演示 2. jPaginate: A Fancy jQuery Pagination Plugin jPa

  • AJAX初级教程之初识AJAX

    从刚刚接触B/S开发,就耳闻AJAX技术,但一直处于模棱两可的状态,大道理明白,一到动手就傻眼了. AJAX仿佛就是深不可测的技术,成为B/S学习过程中的一个阴影. 直到前些日子,小菜才真正开始AJAX实践,真正动手了才发现,AJAX并没有那么困难,如果不考虑AJAX的变型应用,只考虑AJAX基本应用,它还是相当简单的,过于复杂的理论阻碍了我们动手的积极性. 因此,本系列教程将从实用的角度出发,以最快的速度让读者掌握基本的AJAX应用,以最直接的方式展示AJAX技术. 为了更好的阅读本系列教程,

  • Ajax.基础教程 电子书版 提供下载

    Ajax.基础教程提供下载时间为2个星期以内,需要的抓紧下 screen.width-461) window.open('/upload/200729131038873.jpg');" src="http://files.jb51.net/upload/200729131038873.jpg" border=0> http://www.javascript.com.cn/Ajax.pdf 最好用迅雷下 (此资源来源于网络,如果侵犯您的版权,我们会马上删掉)

  • 十大最佳Ajax教程收集(图文)

    由于它的灵活性.优美以及快速的响应时间可以提高开发体验等原因,Ajax在许多开发领域变得越来越流行.本文作者推荐了十大最佳Ajax教程,全文如下: 我承认Ajax有一个学习曲线,但一旦你把握要领认真学习并在项目中实施之,你就会享受到Ajax带来的开发乐趣.网上有成百上千的Ajax教程,你可以从头学习直至成长为高手. 我纵览网络收集了十大最佳Ajax教程,你可以从它们开始学习Ajax,也可以借助它们获得提高: 1.Easy Ajax with jQuery(http://articles.site

  • 比较简单的jquery教程 Easy Ajax with jQuery 中文版全集第1/3页

    Ajax在改变着web应用,并且带来了一种前所未有的桌面应用程序之外的震撼.但是,在这些宣传的背后我们应该意识到,其实ajax不过是--(X)HTML,Javascript以及XML,没什么新鲜的.在这个教程中,我将给你展示如何让简单的添加ajax到你的应用中去,并且教你如何使用一个流行的javascript库Jquey进行ajax开发. 1. 什么是ajax 你以前可能听说过ajax,或者至少用过ajax的应用--比如Gmail.简单的说,ajax就是使用javascript来异步地处理数据,

随机推荐