科讯商业版中用到的ajax空间与分页函数


Posted in Javascript onSeptember 02, 2007

科讯sql商业版中用到的ajax空间与分页函数,他们的js代码学习是非常不错的
//ajax 控件
function PageAjax(){
    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 Page(curPage,labelid,classid,installdir,url,refreshtype,specialid)
   {
   this.labelid=labelid;
   this.classid=classid;
   this.url=url;
   if (labelid.substring(0,5)=="{SQL_")
   {
    var slabelid=labelid.split('(')[0];
    slabelid=slabelid.replace("{","");
    this.c_obj="c_"+slabelid;
    this.p_obj="p_"+slabelid;
   }
   else
   {
   this.c_obj="c_"+labelid;
   this.p_obj="p_"+labelid;
   }
   this.installdir=installdir;
   this.refreshtype=refreshtype;
   this.specialid=specialid;
   this.page=curPage;
   loadData(1);
   }
function loadData(p)
{  this.page=p;
   var xhr=new PageAjax();
   xhr.open("get",installdir+url+"?labelid="+escape(labelid)+"&classid="+classid+"&refreshtype="+refreshtype+"&specialid=" +specialid+"&curpage="+p,true);
   xhr.onreadystatechange=function (){
             if(xhr.readyState==1)
              {
                 if (p==1)
                eval('document.all.'+c_obj).innerHTML="<div align='center'><img src='"+installdir+"images/loading.gif'>正在连接服务器...</div>";
              }
              else if(xhr.readyState==2 || xhr.readyState==3)
              {
                if (p==1)
                eval('document.all.'+c_obj).innerHTML="<div align='center'><img src='"+installdir+"images/loading.gif'>正在读取数据...</div>";
              }
              else if(xhr.readyState==4)
              {
             if (xhr.status==200)
             {
                  var pagearr=xhr.responseText.split("{ks:page}")
                  var pageparamarr=pagearr[1].split("|");
                  count=pageparamarr[0];    
                  perpagenum=pageparamarr[1];
                  pagecount=pageparamarr[2];
                  itemunit=pageparamarr[3];   
                  itemname=pageparamarr[4];
                  pagestyle=pageparamarr[5];
                  getObject(c_obj).innerHTML=pagearr[0];
                  pagelist();
             }
            }
       }
    xhr.send(null); 
}
function getObject(id) 
{
    if(document.getElementById) 
    {
        return document.getElementById(id);
    }
    else if(document.all)
    {
        return document.all[id];
    }
    else if(document.layers)
    {
        return document.layers[id];
    }
}

function pagelist()
{
 var n=1;    
 var statushtml=null;
 switch(parseInt(this.pagestyle))
 {
  case 1:    
     statushtml="共"+this.count+this.itemunit+" <a href=\"javascript:homePage(1);\" title=\"首页\">首页</a> <a href=\"javascript:previousPage()\" title=\"上一页\">上一页</a> <a href=\"javascript:nextPage()\" title=\"下一页\">下一页</a> <a href=\"javascript:lastPage();\" title=\"最后一页\">尾页</a> 页次:<font color=red>"+this.page+"</font>/"+this.pagecount+"页 "+this.perpagenum+this.itemunit+this.itemname+"/页";
        break;
  case 2:
     statushtml="<a href='#'>"+this.pagecount+"页/"+this.count+this.itemunit+"</a> <a href=\"javascript:homePage(1);\" title=\"首页\"><font face=webdings>9</font></a> <a href=\"javascript:previousPage()\" title=\"上一页\"><font face=webdings>7</font></a> ";
     var startpage=1;
     if (this.page==10)
       startpage=2;
     else if(this.page>10)
       startpage=eval((parseInt(this.page/10)-1)*10+parseInt((this.page)%10)+2);
      for(var i=startpage;i<=this.pagecount;i++){ 
          if (i==this.page)
           statushtml+="<a href=\"#\"><font color=\"#ff0000\">"+i+"</font></a> "
          else
            statushtml+="<a href=\"javascript:turn("+i+")\">"+i+"</a> "
            n=n+1;
          if (n>10) break;
      }
     statushtml+="<a href=\"javascript:nextPage()\" title=\"下一页\"><font face=webdings>8</font></a> <a href=\"javascript:lastPage();\" title=\"最后一页\"><font face=webdings>:</font></a>";
     statushtml="<span class='kspage'>"+statushtml+"</span>";
    break;     
  case 4:
     statushtml="共"+this.pagecount+"页/"+this.count+this.itemunit+this.itemname+" <a href=\"javascript:homePage(1);\" title=\"首页\"><font face=webdings>9</font></a> <a href=\"javascript:previousPage()\" title=\"上一页\"><font face=webdings>7</font></a> ";
      for(var i=this.page;i<=this.pagecount;i++){ 
          if (i==this.page)
           statushtml+="<b><font color=\"#ff0000\">"+i+"</font></b> "
          else
            statushtml+="<a href=\"javascript:turn("+i+")\">["+i+"]</a> "
            n=n+1;
          if (n>10) break;
      }
     statushtml+="<a href=\"javascript:nextPage()\" title=\"下一页\"><font face=webdings>8</font></a> <a href=\"javascript:lastPage();\" title=\"最后一页\"><font face=webdings>:</font></a>";
    break;     
  case 3:
     statushtml="第<font color=#ff000>"+this.page+"</font>页 共"+this.pagecount+"页 <a href=\"javascript:homePage(1);\" title=\"首页\"><<</a> <a href=\"javascript:previousPage()\" title=\"上一页\"><</a> <a href=\"javascript:nextPage()\" title=\"下一页\">></a> <a href=\"javascript:lastPage();\" title=\"最后一页\">>></a> "+this.perpagenum+this.itemunit+this.itemname+"/页";
   break;
 }
     statushtml+=" 第<select name=\"goto\" onchange=\"turn(parseInt(this.value));\">";
      for(var i=1;i<=this.pagecount;i++){
         if (i==this.page)
         statushtml+="<option value='"+i+"' selected>"+i+"</option>";
         else
         statushtml+="<option value='"+i+"'>"+i+"</option>";
      }    
     statushtml+="</select>页";
     getObject(this.p_obj).innerHTML=statushtml;
}
function homePage()
{
   if(this.page==1)
    alert("已经是首页了!")
   else
   loadData(1);

function lastPage()
{
   if(this.page==this.pagecount)
    alert("已经是最后一页了!")
   else
   loadData(this.pagecount);

function previousPage()
{
   if (this.page>1)
      loadData(this.page-1);
   else
      alert("已经是第一页了");      
}

function nextPage()
{
   if(this.page<this.pagecount)
      loadData(this.page+1);
   else
      alert("已经到最后一页了");
}
function turn(i)
{
     loadData(i);
}

Javascript 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
Javascript下的keyCode键码值表
Apr 10 Javascript
23个超流行的jQuery相册插件整理分享
Apr 25 Javascript
jQuery事件 delegate()使用方法介绍
Oct 30 Javascript
javascript设置连续两次点击按钮时间间隔的方法
Oct 28 Javascript
基于Jquery实现万圣节快乐特效
Nov 01 Javascript
node.js 中国天气预报 简单实现
Jun 06 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
详解javascript中的Error对象
Apr 25 Javascript
layui使用form表单实现post请求页面跳转的方法
Sep 14 Javascript
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 #Javascript
给Javascript数组插入一条记录的代码
Aug 30 #Javascript
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 #Javascript
Expandable &quot;Detail&quot; Table Rows
Aug 29 #Javascript
出现“不能执行已释放的Script代码”错误的原因及解决办法
Aug 29 #Javascript
推荐一些非常不错的javascript学习资源站点
Aug 29 #Javascript
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 #Javascript
You might like
一个很不错的PHP翻页类
2009/06/01 PHP
php session安全问题分析
2011/06/24 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python模块学习 re 正则表达式
2011/05/19 Python
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python正则表达式match和search用法实例
2015/03/26 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
个人公开承诺书
2014/03/28 职场文书
常务副总经理任命书
2014/06/05 职场文书
先进工作者申报材料
2014/12/23 职场文书
遗愿清单观后感
2015/06/09 职场文书
医院病假条怎么写
2015/08/17 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技