/**
* 分页
* @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;
}
}

自己实现的ajax分页js的更多相关文章

  1. Ajax分页js代码

    var pageIndex = 0; var pageSize = 10; $(function () { $("#btnSearch").click(function () { ...

  2. [js开源组件开发]ajax分页组件

    ajax分页组件 我以平均每一周出一个开源的js组件为目标行动着,虽然每个组件并不是很庞大,它只完成某一个较小部分的工作,但相信,只要有付出,总会得到回报的.这个组件主要完成分页的工作. 这张图里显示 ...

  3. MVC - 11(下)jquery.tmpl.js +ajax分页

    继续 mvc-11(上).dto:http://www.cnblogs.com/tangge/p/3840060.html jquery.tmpl.js 下载:http://pan.baidu.com ...

  4. ThinkPHP AJAX分页及JS缓存的应用

    //AJAX分页详见兄弟连PHP项目视频教程22讲35分钟左右 主要实现是需要将分页中的每个链接都改为AJAX请求 //前端缓存技术:基于javascript传输的数据,只要浏览器没关,都保存在内存中 ...

  5. [jQuery]jQuery DataTables插件自定义Ajax分页实现

    前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...

  6. ThinkPHP 整合Bootstrap Ajax分页

    ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $wh ...

  7. laraver ajax分页

    ,设置分页容器参考laraver手册 我的设置代码如下: ,控制器调用的方法:代码如下 );         include($path);         $content = ob_get_cle ...

  8. PHP+jQuery 长文章分页类 ( 支持 url / ajax 分页方式 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8 **** ...

  9. PHP+jQuery 列表分页类 ( 支持 url 分页 / ajax 分页 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.mi ...

随机推荐

  1. JS-基础动画心得

    写在前面的话:这两种动画方式主要在于对其中算法的理解,理解其中的向上和向下取整很关键.还有一个我犯的毛病,写样式的时候忘记给轮播图ul定位,导致效果出不来,所以有bug时记得排除下css 常用的三种动 ...

  2. Docker Hello World

    Docker 允许你在容器内运行应用程序,使用docker run命令来在容器内运行一个个应用程序. 输出Hello World docker run ubuntu:15.10 ./bin/echo ...

  3. RQNOJ 2 开心的金明

    一道基础的01背包,要是不明白可以自己搜一下背包九讲,自己刚开始数组开小了,题目看串了行,找了半天,小错还是要格外注意的. #include <iostream> #include < ...

  4. 【NIFI】 Apache NiFI 安装及简单的使用

    NiFI介绍 NiFi(NiagaraFiles)是为了实现系统间数据流的自动化而构建的.虽然术语“数据流”用于各种上下文,但我们在此处使用它来表示系统之间的自动和管理信息流 官网地址:http:// ...

  5. xbeePROS1发送的数据在802.15.4网络中有多大时延?

    完整的计算过程请参考Digi官方网站的文章:Sending data through an 802.15.4 network latency timing. Digi的S1模块可以跑802.15.4固 ...

  6. ABP框架系列之三十五:(MVC-Controllers-MVC控制器)

    Introduction ASP.NET Boilerplate is integrated to ASP.NET MVC Controllers via Abp.Web.Mvc nuget pack ...

  7. ABP框架系列之十四:(Background-Jobs-And-Workers-背景工作和工人)

    Introduction ASP.NET Boilerplate provides background jobs and workers those are used to execute some ...

  8. DX与OpenGL投影矩阵的区别

    之前学习DX和OpenGL时到是知道一点,但是没仔细研究过,只是跟着教程抄个公式就过了,看双API引擎时发现转换时是个问题,必须搞懂,gamedev上找了个解释,希望用得上. https://www. ...

  9. 27、通过visual s'tudio 验证 SOCKET编程:搭建一个TCP服务器

    本文就是在windows下进行socket编程,搭建一个TCP客户端. 在visual studio下编程,首先在windows下进行初始化(这点在linux下是不需要的): /* 初始化 Winso ...

  10. PMP:2.项目运行环境

    事业环境因素(EEF):事业环境因素源于项目外部(往往是企业外部)的环境,是指项目团队不能控制的,将对项目产生影响.限制或指令作用的各种条件. 组织内部的事业环境因素: {     uu组织文化.结构 ...