科讯商业版中用到的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 相关文章推荐
javascript 星级评分效果(手写)
Dec 24 Javascript
javascript中scrollTop详解
Apr 13 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
js实现兼容IE、Firefox的图片缩放代码
Dec 08 Javascript
javascript实现checkbox复选框实例代码
Jan 10 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
Apr 26 Javascript
JS使用插件cryptojs进行加密解密数据实例
May 11 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
详解webpack的proxyTable无效的解决方案
Jun 15 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 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+java实现自动新闻滚动窗口
2006/10/09 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
vue 优化CDN加速的方法示例
2018/09/19 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
python中kmeans聚类实现代码
2018/02/23 Python
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
电信专业应届生自荐信
2013/09/28 职场文书
物业管理大学生个人的自我评价
2013/10/10 职场文书
医院实习介绍信
2014/01/12 职场文书
火锅店的活动方案
2014/08/15 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
师德师风自查总结
2014/10/14 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
销售2014年度工作总结
2014/12/08 职场文书
公司奖励通知
2015/04/21 职场文书
关于远足的感想
2015/08/10 职场文书
七年级英语教学反思
2016/02/15 职场文书
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
vue使用element-ui按需引入
2022/05/20 Vue.js