加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

使用Asterix ASP实现页面上的固定间隔的无滚动分页显示

发布时间:2023-08-28 14:52:53 所属栏目:Asp教程 来源:
导读:#FormatTableID_0#

<html>

<head>

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

<script language="javascript">

<!--

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

function Ajax()

{
#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> "
 
    }
 
else
 
{
 
        statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a> "
 
}
 
}
 
}
 
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> "
 
        }
 
    else
 
    {
 
            statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a> "
 
    }
 
}
 
}
 
else if(page % 10 ==1 && page!=1)
 
{
 
    for(var i=page-1;i<=page+10;i++)
 
{
 
    if (i==page)
 
        {
 
        statushtml+="<b>"+i+"</b> "
 
        }
 
    else
 
    {
 
            statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a> "
 
    }
 
}
 
}
 
else if(page<=11)
 
{
 
     for(var i=1;i<=11;i++)
 
{
 
    if (i==page)
 
        {
 
        statushtml+="<b>"+i+"</b> "
 
        }
 
    else
 
    {
 
            statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a> "
 
    }
 
}
 
}
 
else
 
{
 
    for(var i=(page-(page % 10));i<=page+(10-(page % 10))+1;i++)
 
{
 
    if (i==page)
 
        {
 
        statushtml+="<b>"+i+"</b> "
 
        }
 
    else
 
    {
 
            statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a> "
 
    }
 
}
 
}
 
}
 
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> "
 
        }
 
    else
 
    {
 
            statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a> "
 
    }
 
}
 
}
 
else if(page % 10 ==1 && page!=1)
 
{
 
    for(var i=page-1;i<=page+9;i++)
 
{
 
    if (i==page)
 
        {
 
        statushtml+="<b>"+i+"</b> "
 
        }
 
    else
 
    {
 
            statushtml+="<a href="javascript:turnPage("+i+")">"+i+"</a> "
 
    }
 
}
 
}
 
}
 
      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><![CDATA[<%=rs("a")%>]]></title>
 
<htmlurl><![CDATA[<%=rs("b")%>]]></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
 
%>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章