asfman
android developer
posts - 90,  comments - 213,  trackbacks - 0
//分页控制
//参数分别为:RS对象,每页显示条数,页码指向的链接,当前页码
function Pages(rsObj,pagesize,url,num){
    var pageContent
    rsObj.PageSize = pagesize
//如果当前没有页码,默认指向第一页
    if(!$r(num) || $r(num) == "" || $r(num).Count ==0 || $r(num)<1){
        num = 1;
        rsObj.AbsolutePage = 1;
//否则指向该页码
    }else{
        num = Number($r(num)+"");
        rsObj.AbsolutePage = num
    }
//计算总页数:为什么不用RS.PageCount,因为之后要自动调整每页显示条数
//否则页码总数计算会出错
    var pageCount = Math.ceil(rsObj.RecordCount/pagesize)
    pageContent = pageNum(rsObj,pageCount,url,num)
    return "共 "+pageCount+"页 / "+rsObj.RecordCount+" 条记录 "+pageContent
}
//开始计算页码
function pageNum(rsObj,pgCont,url,num){
    var CS,CSL,CSR,z,cont,thisContent="",maxPageNum=10
//当限制每次显示的页码条数时,计算共有多少组页码
    CS = Math.ceil(pgCont/maxPageNum)
//计算当前组页码的最大页数
    CSR = Math.ceil(num/maxPageNum)
//计算当前组页码的最小页数
    CSL = (CSR-1)*maxPageNum
//当前页码为最后一组
    if(CS == CSR){
//因为最后一组页码不可能于所剩记录条数相等,所以要做一下容错
        if(pgCont%maxPageNum == 0){
            cont = CSL+maxPageNum
        }else{
            cont = CSL+(pgCont%maxPageNum)
        }
    }else{
        cont = CSR*maxPageNum
    }
//当前页面为最后一页,并且记录数不等于默认显示记录数时,重新写入记录数
    if(num == pgCont && rsObj.RecordCount%rsObj.PageSize != 0){
        rsObj.PageSize = rsObj.RecordCount%rsObj.PageSize
    }
    CSL += 1
//设置首页,上一页
    if(num > 1){
        thisContent += pgUrl(url,1,"首页")+pgUrl(url,(num-1),"上一页")
    }else{
        thisContent += "<span>首页</span><span>上一页</span>"
    }
//前后页组
//如果当前页码不为第一组则显示跳到上组页码链接
    if(CSR > 1){
        thisContent += pgUrl(url,(CSL-maxPageNum),"[...]")
    }//else{
    //    thisContent += "<span>[...]</span>"
    //}
//循环打出本组页码
    for(z=CSL; z<=cont; z++){
        thisContent += checkTO(z,num,url)
    }
//如果当前页码不为第一组,并且还有下组页码则显示跳到下组页码链接
    if(CSR < CS){
        thisContent += pgUrl(url,(cont+1),"[...]")
    }//else{
    //    thisContent += "<span>[...]</span>"
    //}
    if(num != pgCont){
        thisContent += pgUrl(url,(num+1),"下一页")+pgUrl(url,pgCont,"尾页")
    }else{
        thisContent += "<span>下一页</span><span>尾页</span>"
    }
    return thisContent
}
//判断是否在本页或本组
function checkTO(pageSort,num,url){
    if(pageSort == num){
        return "<span class='default'>["+pageSort+"]</span>"
    }else{
        return pgUrl(url,pageSort,"["+pageSort+"]")
    }
}
//不在本页或本组给出链接
function pgUrl(url,num,txt){
    return '<a href="'+url+'page='+num+'">'+txt+'</a>'
}
posted on 2006-07-13 13:34 汪杰 阅读(533) 评论(0)  编辑 收藏 引用 所属分类: javascript
只有注册用户登录后才能发表评论。

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(15)

随笔分类(1)

随笔档案(90)

文章分类(727)

文章档案(712)

相册

收藏夹

http://blog.csdn.net/prodigynonsense

友情链接

最新随笔

搜索

  •  

积分与排名

  • 积分 - 466814
  • 排名 - 6

最新随笔

最新评论

阅读排行榜

评论排行榜