/**
* 分页
* @author chenqionghe
* @param data json数据,包含totalPage,count
* @param page 获取的页数
* @param obj 表格中的对象
* @param funcName 页码点击跳转的函数名,默认为showPage
* @constructor
*/
function Page(data,page,obj,funcName)
{
var funcName = arguments[3] ? arguments[3] : 'showPage';
this.totalPage = data.totalPage; //总页数
this.count = data.count; //总记录数
this.per = data.per; //每页显示多少条
this.nowPage = page; //当前页码
this.per_choose = [5,10,20,50,100]; //每页提供选择显示条数
this.pageStr = function ()
{
if(this.count == 0)
{
return '<tr><td class="pageStr" colspan="'+$(obj).closest('table').find('th').length+'"><span class="rows">没有数据可供显示</span></td></tr>';
}
//根据总的记录数,循环构造翻页字符串
var rollPage = 5;//设置每页显示的提供点击的页数
var offset = Math.ceil((rollPage / 2));
var pageStr = '<tr><td class="pageStr" colspan="'+$(obj).closest('table').find('th').length+'">'; pageStr +='每页显示<select onchange="'+funcName+'(1,this,this.value)">';
$.each(this.per_choose,function(k,v){
var selected = (data.per == v)? 'selected="selected"' : '';
pageStr += '<option '+selected+' value="'+v+'">'+v+'</option>';
});
pageStr += '</select>  ' pageStr += '<a href="javascript:void(0);" class="first" onclick="'+funcName+'(1,this,'+this.per+')">首页</a>';
pageStr += '<span class="rows">共 '+this.count+' 条记录</span>';
pageStr += ' <span class="rows">第'+this.nowPage+'页 </span>';
if(this.totalPage>offset && this.nowPage>offset)
pageStr += '<a href="javascript:void(0);" class="first" onclick="'+funcName+'(1,this,'+this.per+')">首页</a>';
if(this.nowPage > 1)
pageStr += '<a href="javascript:void(0);" class="prev" onclick="'+funcName+'('+(this.nowPage-1)+',this,'+this.per+')">上一页</a>';
var p; //字符页码
for(var i=1; i<=rollPage; i++)
{
if(this.nowPage < offset)
p = i;
else if(this.nowPage + offset > this.totalPage)
p = this.totalPage-offset+i;
else
p = this.nowPage-offset+i;
//拼接字符串
if(p > 0 && p != this.nowPage)
if(p <= this.totalPage)
pageStr += '<a href="javascript:void(0);" class="num" onclick="'+funcName+'('+p+',this,'+this.per+')">'+p+'</a>';
else
break;
else
{
if(this.nowPage > 0 && this.totalPage != 1)
pageStr += '<a class="current" >'+p+'</a>';
} }
if(this.nowPage < this.totalPage)
pageStr += '<a href="javascript:void(0);" class="next" onclick="'+funcName+'('+(this.nowPage+1)+',this,'+this.per+')">下一页</a>';
if(this.totalPage>offset && (this.nowPage+offset)<this.totalPage)
pageStr += '<a href="javascript:void(0);" class="end" onclick="'+funcName+'('+this.totalPage+',this,'+this.per+')">尾页</a>';
pageStr += '  <span class="rows">共'+this.totalPage+'页</span> ';
pageStr += '</td></tr>';
return pageStr;
}
}

最新文章

  1. Java异常总结
  2. 新项目CRM(1)
  3. Jenkins 报错:(pending—Waiting for next available executor)
  4. 洛谷 P1014 Cantor表 Label:续命模拟QAQ
  5. netfilter分析
  6. 《TCP/IP详解 卷一》读书笔记-----第三章 IP
  7. matlab的&amp;和&amp;&amp;操作
  8. 【HDOJ】4455 Substrings
  9. pom.xml中&lt;dependency&gt;
  10. HtmlTextWriter学习笔记
  11. 在TC(Total Commander)中添加启动Cygwin快捷键的方法
  12. vs2013安装xna4.0模板
  13. 混合式应用开发之Cordova+vue(1)
  14. iOS 使用AVAudioPlayer开发录音功能
  15. Servlet处理Json请求数据包
  16. git push上传代码到gitlab上,报错401/403(或需要输入用户名和密码)
  17. HDU4409-LCA模拟
  18. 前端学PHP之面向对象系列第四篇-----关键字
  19. ASP.NET MVC验证码演示
  20. BFC (Block formatting context)

热门文章

  1. Difference between MB Star C3 and MB Star C4
  2. 杨其菊201771010134《面向对象程序设计(Java)》第三周学习总结
  3. 201621123002《JAVA程序设计》第五周学习总结
  4. b2b b2c o2o电子商务微服务云平台
  5. sendmail发送邮件
  6. Maven学习 三 Maven与Eclipse结合使用
  7. turtle库的学习笔记
  8. MFC字体样式和颜色设置
  9. zlib+pcre+openssl+nginx安装
  10. 深入理解SpringCloud与微服务构建学习总结