当前位置: 首页 > 图文教程 > 网络编程 > AJAX技术 > ASP AJAX 静态分页

AJAX技术
自己动手封装的 ajax
Ajax 对象 包含post和get两种异步传输方式
Ajax 超时检查脚本
AJAX 简介及入门实例
ajax 开发守则 10条说明
Ajax 返回字符串的过滤实现代码
Ajax 程序开发中常见问题
AJAX 验证框架13个
ajax 入门基础之 XMLHttpRequest对象总结
基于AJAX的分页类实现代码
如何在Asp.net中使用HtmlArea编辑器
使用 jQuery 简化 Ajax 开发
ASP.NET 与 Ajax 的实现方式
AJAX技术介绍
Ajax程序设计入门
学习Ajax教程,详细了解Get与Post
关于Ajax responseText 的一点阐述
ajax中文乱码解决方法
AJAX中文问题总结
AJAX无刷新更新数据

AJAX技术 中的 ASP AJAX 静态分页


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 77 ::
收藏到网摘: n/a

这个页面注意是调用来自数据库中的数据。

<html>
<head>
<title>AJAX静态分页演示:http://www.ruanchen.com</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<style type="text/css">
<!--
body { text-align:center;font:14px Verdana,sans-serif; }
a:link,a:visited { color:#00f;text-decoration:none; }
a:hover { color:#f00;text-decoration:underline; }
#main { width:450px;background:#f2f2f2;border:1px #999 solid;padding:10px;text-align:left;line-height:150%;margin:0 auto; }
#title { width:100%;line-height:30px;border-bottom:1px #999 solid;display:table; }
#left { float:left;width:50%;text-align:left;font-size:14px;font-weight:bold; }
#right { float:left;width:50%;text-align:right; }
#content { width:100%;margin:10px 0;clear:both; }
#download { width:100%;margin:10px 0;line-height:150%; }
-->
</style>
<script type="text/javascript">
<!--
function createAjax() { //该函数将返回XMLHTTP对象实例
var _xmlhttp;
try {
_xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); //IE的创建方式
}
catch (e) {
try {
_xmlhttp=new XMLHttpRequest(); //FF等浏览器的创建方式
}
catch (e) {
_xmlhttp=false; //如果创建失败,将返回false
}
}
return _xmlhttp; //返回xmlhttp对象实例
}
function getweblist(page) { //该函数用来获取分页数据
var xmlhttp=createAjax(); //创建变量xmlhttp,并将createAjax()函数创建的对象实例赋于它
if (xmlhttp) { //如果xmlhttp对象创建成功,则执行条件语句中的程序
var content=document.getElementById('content'); //获取页面中id为content的对象
xmlhttp.open('get','server.asp?page='+page+'&n='+Math.random(),true); //打开与服务器的连接,其中get为连接方式,server.asp为要连接的页面,有两个参数,其中第一个参数page为需要返回数据的页数,第二个参数n为一个随机数,这样每次发送的URL都会不一样,相当于都向服务器发出一个新的请求,避免浏览器缓存数据。
xmlhttp.onreadystatechange=function() { //为xmlhttp对象的readyState属性指定事件,改属性值改变时,则会执行其中的程序
if (xmlhttp.readyState==4 && xmlhttp.status==200) { //如果xmlhttp.readyState==4并且xmlhttp.status==200时,执行条件中的程序,其中readyState有五个值,4为请求完成,是客户端向服务器提交的数据成功到达,status有N多值-_-!!,其中200为OK,是指服务器向客户端完成发送数据。
content.innerHTML=unescape(xmlhttp.responseText); //将服务器返回的数据解码并写入指定的ID中。
}
else {
content.innerHTML='<span style="color:red">正在从服务器提取数据......</span>'; //如果服务器没有完成传送,则向用户提示正在传输。
}
}
xmlhttp.send(null); //向服务器发送请求,因为是get请求,会直接附在URL后面,所以这里括号中的数据为null,IE中也可以不写,但FF就必须加上null,否则会发送失败。
}
}
function edit() { //编辑分页显示条数的函数
var str='<form style="margin:0">每页显示 <input type="text" id="pagesize" size="3"> 条 <input type="button" id="savebtn" value="保存" onclick="save()"> <input type="button" id="cancelbtn" value="取消" onclick="rightinfo()"></form>' //定义html字符串
var right=document.getElementById('right'); //获得页面中的right对象。
right.innerHTML=str; 将str变量的值写入该对象中。
}
function rightinfo() { //right对象中的原始信息,请在页面开始和被显示条数被修改后调用
document.getElementById('right').innerHTML='<a href="javascript:void(edit())" title="修改每页显示条数">Edit</a>';
}
function save() { //保存修改后的显示条数
var pagesize=document.getElementById('pagesize'); //这个就不写了,跟上面的用法一样。
if (pagesize.value==''||/[0-9]+/.test(pagesize.value)==false) { //确定用户输入的新数据是不是一个数字
alert("请正确填写每页显示条数! ");
return;
}
var xmlhttp=createAjax(); //创建对象
if (xmlhttp) {
xmlhttp.open('get','set.asp?pagesize='+pagesize.value+'&n='+Math.random(),true) //参上同看
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById('right').innerHTML=unescape(xmlhttp.responseText); //先写入从服务器返回的字符串,如果成功,会写入completed。
getweblist(1); //从新获取新修改后的第一页的数据
setTimeout('rightinfo()',3000); //3秒后将right对象的原始字符串写入。
}
else {
document.getElementById('pagesize').disabled=true; //将几个FORM表单的元素都设为不可改动
document.getElementById('savebtn').disabled=true;
document.getElementById('cancelbtn').disabled=true;
}
}
xmlhttp.send(null); //发送请求。
}
}
//-->
</script>
</head>
<body onload="getweblist(1);rightinfo();">
<div id="main">
<div id="title">
<div id="left">静态分页的AJAX实现</div>
<div id="right"></div>
</div>
<div id="content"></div>
<div id="download">
作者:十一狼<br />
联系:275915854(QQ) [email protected](email)<br />
下载:<a href="http://www.ruanchen.com" target="_blank">http://www.ruanchen.com</a>
</div>
</div>
</body>
</html>
这个页面注意是调用来自数据库中的数据。
asp数据库读取页面

复制代码 代码如下:

<!--#include file="conn.asp"-->
<%
'Dim pagesize
'sql="select top 1 * from [pagesize] order by id desc"
'rs.open sql,conn,1,1
'pagesize=rs("pagesize")
'rs.Close
If session("pagesize")="" Then session("pagesize")=9
Dim page
page=unescape(Request.QueryString("page"))
If page<>"" Then
sql="select * from [test] order by id asc"
rs.open sql,conn,1,1
If rs.eof Then
Response.Write(escape("还没有任何数据"))
Else
rs.pagesize=session("pagesize")
page=CLng(page)
If page<1 Then
page=1
ElseIf page>rs.pagecount Then
page=rs.pagecount
End If
rs.absolutepage=page
Dim i,str
str=str & "<div style='margin:0'>"
For i=1 To rs.pagesize
str=str & rs("id") & ". <a href='" & rs("weburl") & "' title='前往该网站' target='_blank'>" & rs("webname") & "</a><br />"
rs.movenext
If rs.eof Then Exit For
Next
str=str & "</div><div style='margin-top:10px;line-height:30px;text-align:left;border-top:1px #999 solid'>"
str=str & "<a href='javascript:void(getweblist(1))'><<</a> "
For i=1 To rs.pagecount
If i=page Then
str=str & "<span style='font-weight:bold;color:red;font-size:16px;'>" & i & "</span> "
Else
str=str & "<a href=javascript:void(getweblist(" & i & "))>" & i & "</a> "
End If
Next
str=str & " <a href='javascript:void(getweblist(" & rs.pagecount & "))'>>></a>"
str=str & "</div>"
str=escape(str)
Response.Write(str)
End If
rs.Close
Set rs=Nothing
conn.Close
Set conn=Nothing
Else
Response.Write(escape("Error:页数不能为空!"))
End If
%>

打包下载地址 http://www.ruanchen.com/odes/10094.html