科讯商业版中用到的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 相关文章推荐
写入cookie的JavaScript代码库 cookieLibrary.js
Oct 24 Javascript
利用javascript解决图片缩放及其优化的代码
May 23 Javascript
node.js中的buffer.slice方法使用说明
Dec 10 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 Javascript
javascript关于继承解析
May 10 Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
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/03/10 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
文本加密解密
2006/06/23 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
web打印小结
2017/01/11 Javascript
javascript实现简易计算器
2017/02/01 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
python实现telnet客户端的方法
2015/04/15 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
会计人员演讲稿
2014/09/11 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
神农溪导游词
2015/02/11 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
银行服务理念口号
2015/12/25 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL