js页码分页


/***
* 生成页码,小于2时没有页码
* @param page 当前页(Number)
* @param totalPage 总页码(Number)
* @param pagerSelector 生成的页码所放置的id(String)
* @param callbackFunctionName 回调函数的名称,传‘’代表默认方法名loadPage,当页面存在多个分页时,可以自定义回调函数名称
* @param isParent 是否是父级作用域(boolean) true代表是父级页面,false代表当前页面 
* @returns 
*/
cpic.pager = function(page, totalPage, pagerIdSelector,callbackFunctionName,isParent) {
var maxShowPager = 7;
var pagePre = 3,pageAfter=3;
if(totalPage<2) {
if(isParent){
parent.document.getElementById(pagerIdSelector).innerHTML = "";
}else{
document.getElementById(pagerIdSelector).innerHTML = "";
}

} else if(page<=totalPage) {
var pager = '
  • 1?' onclick="cpic.toPage(' + (1) + ',\''+callbackFunctionName+'\','+isParent+')" ':'') + '>首页
  • 1?' onclick="cpic.toPage(' + (page-1) + ',\''+callbackFunctionName+'\','+isParent+')" ':'') + '>'; if(totalPage<=7) { for(var i=1;i<=totalPage;i++) { pager += '
  • ' + i + '
  • '; } }else { if(page>pagePre && page<=totalPage-pageAfter) { for(var i=page-pagePre;i<=page+pageAfter;i++) { pager += '
  • ' + i + '
  • '; } }else if(page<=pagePre) { for(var i=1;i<=maxShowPager;i++) { pager += '
  • ' + i + '
  • '; } }else if(page>totalPage-pageAfter) { for(var i=totalPage-maxShowPager+1;i<=totalPage;i++) { pager += '
  • ' + i + '
  • '; } } } pager += ''; pager += '尾页
'; if(isParent){ parent.document.getElementById(pagerIdSelector).innerHTML = pager; }else{ document.getElementById(pagerIdSelector).innerHTML = pager; } }else { throw "当前页大于总页码"; } }; cpic.toPage = function(page,callbackFunctionName,isParent) { if(callbackFunctionName != null && callbackFunctionName != '' && callbackFunctionName != undefined && callbackFunctionName != "undefined"){ if(isParent){ eval('window.frames["rightContent"].cpic.' + callbackFunctionName+'(' + page + ')'); }else{ eval('cpic.' + callbackFunctionName+'(' + page + ')'); } }else{ if(isParent){ window.frames["rightContent"].cpic.loadPage(page); }else{ cpic.loadPage(page); } } }; cpic.loadPage = function() { throw "方法需要在具体实现里重写"; }; 栗子: /*** * @override cpic.xybx.js * 有分页的页面这个方法需要重写 */ cpic.loadPage2 = function(page) { controller.load(page); }; //加载数据 this.load = function(page) { cpic.ajax("a/b?" + Math.random(),{page:page,size:model.size}, function(data){ model.page = page; model.totalPage = data.totalPage; controller.drawTable(data.resultList); cpic.pager(model.page, model.totalPage,"aa","loadPage2","bb"); }); };