ASP實現(xiàn)靜態(tài)無刷新分頁效果
來源:易賢網 閱讀:468 次 日期:2015-01-09 11:38:38
溫馨提示:易賢網小編為您整理了“ASP實現(xiàn)靜態(tài)無刷新分頁效果”,方便廣大網友查閱!

#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("創(chuàng)建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("http://item");

icount=Dom.selectNodes("http://item").length; //數量

count=Dom.selectSingleNode("http://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國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網