ASP实现静态无刷新分页效果
来源: 阅读:589 次 日期:2014-09-19 10:09:23
温馨提示: 小编为您整理了“ASP实现静态无刷新分页效果”,方便广大网友查阅!

#FormatTableID_0#

<html>

<head>

<title>新闻列表简化型</title>

<script language="javascript">

<!--

//ajax 控件也可以做成单独文件方便到其它地方调用

function Ajax()

{

var xhrObj=null;

if(window.XMLHttpRequest)

{

xhrObj=new XMLHttpRequest();

}

else if(window.ActiveXObject)

{

try{

xhrObj=new ActiveXObject("Microsoft.XMLHTTP");

}

catch(e1)

{

try{

xhrObj=new ActiveXObject("MSXML2.XMLHTTP");

}

catch(e2){

try{

xhrObj=new ActiveXObject("MSXML3.XMLHTTP");

}

catch(e3){

alert("创建Ajax失败:"+e3)

}

}

}

}

else

{

alert("未能识别的浏览器");

}

return xhrObj;

}

function $(id)

{

return document.all[id];

}

</script>

<script language="javascript" defer>

var xhr=new Ajax();

var page=0;

var icount=0; //当前页数

var pagecount; //总页数

var count=0;

var ipagecount=0;

var ipagesize=5;; //每页显示记录数

var pp=0;

var ipage=0;

var Dom=null;

function getList(curPage)

{

if(ipagecount!=0)

{

ipage=parseInt((curPage-1)/ipagecount)+1;

}else{

ipage=1

};

page=curPage;

if (pp!=ipage)

{;

Dom=null;

pp=ipage;

xhr.open("get","data.asp?curpage="+pp,true);

xhr.onreadystatechange=$CallBack;

xhr.send(null);

}

else

{

$showList();

}

}

function $CallBack()

{

if(xhr.readystate==1)

{

$("newsList").innerHTML="正在连结服务器";

}

else if(xhr.readystate==2 || xhr.readystate==3)

{

$("newsList").innerHTML="正在读取数据";

}

else if(xhr.readystate==4)

{

if (xhr.status==200)

{

Dom=xhr.responseXML;

$showList();

}

}

}

function $showList()

{

var html="";

var items=Dom.selectNodes("//item");

icount=Dom.selectNodes("//item").length; //数量

count=Dom.selectSingleNode("//data").getAttribute("count"); //总数量

ipagecount=parseInt((icount-1)/ipagesize)+1;

pagecount=parseInt((count-1)/ipagesize)+1;

startPosition=(page-1)*ipagesize;

endPosition=(page*ipagesize)

if(endPosition>count)endPosition=count

for(var i=startPosition;i<endPosition;i++)

{

html+="<div id="title"><a href=""+items[i].selectSingleNode("htmlurl").text+"">"+items[i].

selectSingleNode("hits").text+"</a></div>";

}

$("newsList").innerHTML=html;

var statushtml="<a href="javascript:previousPage()">上一页</a>|<a href="javascript:nextPage()">下一页</a>";

if(pagecount<=10)

{

for(var i=1;i<=pagecount;i++)

{

if (i==page)

{

statushtml+="<b>"+i+"</b>&nbsp;"

}

else

{

statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a>&nbsp;"

}

}

}

else if(page+10<pagecount && pagecount>10)

{

if(page%10==0)

{

for(var i=page-9;i<=page+1;i++)

{

if (i==page)

{

statushtml+="<b>"+i+"</b>&nbsp;"

}

else

{

statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a>&nbsp;"

}

}

}

else if(page % 10 ==1 && page!=1)

{

for(var i=page-1;i<=page+10;i++)

{

if (i==page)

{

statushtml+="<b>"+i+"</b>&nbsp;"

}

else

{

statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a>&nbsp;"

}

}

}

else if(page<=11)

{

for(var i=1;i<=11;i++)

{

if (i==page)

{

statushtml+="<b>"+i+"</b>&nbsp;"

}

else

{

statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a>&nbsp;"

}

}

}

else

{

for(var i=(page-(page % 10));i<=page+(10-(page % 10))+1;i++)

{

if (i==page)

{

statushtml+="<b>"+i+"</b>&nbsp;"

}

else

{

statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a>&nbsp;"

}

}

}

}

else if(page+10>=pagecount && pagecount>10)

{

if(page%10==0)

{

for(var i=page-9;i<=page+1;i++)

{

if (i==page)

{

statushtml+="<b>"+i+"</b>&nbsp;"

}

else

{

statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a>&nbsp;"

}

}

}

else if(page % 10 ==1 && page!=1)

{

for(var i=page-1;i<=page+9;i++)

{

if (i==page)

{

statushtml+="<b>"+i+"</b>&nbsp;"

}

else

{

statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a>&nbsp;"

}

}

}

}

document.getElementById("pagestatus").innerHTML=statushtml;

}

function previousPage()

{

if (page>1)

{

getList(page-1);

}

else

{

alert("已经是第一页了");

}

}

function nextPage()

{

if(page<ipagecount)

{

getList(page+1);

}

else

{

alert("已经到最后一页了");

}

}

function turnPage(p)

{

getList(p);

}

getList(1);

</script>

</head>

<body>

<div id="newsList"></div>

<div id="pagestatus"></div>

</body>

</html>

建一个文件data.asp

注:这里我用的是ACCESS数据库,库名叫data.mdb,当然这个自己可以定义,库中表名为info字段分别是id(自动编号)、a、b、c、d(日期类型)

<%@ Language="VBSCRIPT" codepage="936" %>

<%

response.cachecontrol="no-cache"

response.addHeader "pragma","no-cache"

response.expires=-1

response.expiresAbsolute=now-1

response.contentType="text/xml"

'SQL数据库 Set conn=server.CreateObject("adodb.connection")

'sconn="driver={sql server};server=(local);uid=**;pwd=**;database=***"

'conn.open sconn

set conn=server.CreateObject("adodb.connection")

file=server.mappath("data.mdb")

conn.Open "driver={microsoft access driver (*.mdb)};"&"dbq="&file%>

<?xml version="1.0" encoding="gb2312" ?>

<%

dim iPagesize,rs,sSQL,iCurPage,ipresize,icount,ipagecount

icurpage=trim(request.QueryString("curpage"))

iPagesize=500 '页大小

set rs=server.createObject("adodb.recordset")

'rs.open "select count(id) from ca_news where status=1",conn,1,1

rs.open "select count(id) from info",conn,1,1

icount=rs(0) '总记录数

rs.close

ipagecount=int((icount-1)/iPagesize)+1 '总页数

if icurpage="" then

icurpage=1

else

icurpage=cint(icurpage)

end if

if icurpage<1 then

icurpage=1

end if

if icurPage>ipagecount then icurpage=ipagecount

ipreSize=(iCurPage-1)*ipagesize

if ipresize=0 then

sSQL="select * from info order by id desc"

else

' sSQL="select top "&ipagesize&" id,title,postdate,hits,htmlurl from news where status=1 and id not in (select top "&ipresize&" id from news where status=1 order by id asc) order by id asc"

sSQL="select top "&ipagesize&" * from info id not in (select top "&ipresize&" id from info order by id desc) order by id desc"

end if

rs.open sSQL,conn,1,1

%>

<data count="<%=icount%>" pagesize="<%=ipagesize %>" pagecount="<%=ipagecount%>">

<%

while not rs.eof

%>

<item id="<%=rs("id")%>">

<title>&lt;![CDATA[<%=rs("a")%>]]&gt;</title>

<htmlurl>&lt;![CDATA[<%=rs("b")%>]]&gt;</htmlurl>

<postdate><%=DateValue(rs("d")) %></postdate>

<hits><%=trim(rs("c")) %></hits>

</item>

<%

rs.movenext

wend

%>

</data>

<%

rs.close

set rs=nothing

conn.close

set conn=nothing

%>

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map