原版是jquery-pager-1.0.js,经过变更修改加上按照项目中的一些需要修改过来。
 //初始化分页控件 PagerOptions为配置参数 url为要提交的url地址,如果不需要提交则可以为null或""
//options 为提交到服务端的参数,如果不提交则传递到callback方法
//callback 方法回调,点击分页按钮时执行 callback返回总数
//如果不提交到服务端,则此callback方法为CallBack(PageIndex,PageSize,Options)
function InitPager(PagerOptions) {
$(PagerOptions.PageId).setPager(PagerOptions);
}
function ReflashPager() {
$("span .page_current").click();
}
(function ($) {
//设定页码方法,初始化
$.fn.setPager = function (PagerOptions) {
var opts = $.extend({}, pagerDefaults, PagerOptions);
return this.each(function () {
$(this).empty().append(PostData(opts));
});
}
//点击事件
function PageClick(PageIndex, opts) {
opts.PageIndex = PageIndex;
$(opts.PageId).setPager(opts);
}
//跳转
function turnTo(i, opts) {
var index = parseInt($('#indexVal' + i).val());
if (index == '' || index == 'undefined' || index <= 0 || index > (parseInt(opts.PageCount % parseInt(opts.PageSize)) > 0 ? parseInt(opts.PageCount / opts.PageSize) + 1 : parseInt(opts.PageCount / opts.PageSize)) || isNaN(index)) {
$('#indexVal' + i).val('')
return;
}
opts.PageIndex = index;
$(opts.PageId).setPager(opts);
}
//执行post数据
function PostData(opts) {
if (opts.Url == null || opts.Url == "") {
if (opts.CallBack != null && opts.CallBack != 'undefined') {
opts.PageCount = opts.CallBack(opts.PageIndex, opts.PageSize, opts.Options);
}
} else {
if (opts.IsShowLoadMovie) {
var top = $(window).height() / 2 + $(document).scrollTop();
var left = $(window).width() / 2 - 80 + $(document).scrollLeft();
var html = "<div style='top:" + top + "px;left:" + left + "px;position:absolute;z-index:1000;' id='ajaxmessage'><img src='/images/loading.gif'></div>";
$("body").append(html);
}
$.ajax({
type: "POST",
dataType: 'json',
async: false,
url: opts.Url + "?pageIndex=" + opts.PageIndex + "&pageSize=" + opts.PageSize,
data: $.param(opts.Options),
success: function (result) {
if (opts.CallBack != null && opts.CallBack != 'undefined') {
opts.PageCount = opts.CallBack(result, opts.PageIndex, opts.PageSize);
}
}, error: function (msg) {
alertmessage("加载数据发生错误,请联系管理员检查服务端!");
opts.PageCount = 1;
}
});
$("#ajaxmessage").remove();
}
return setPagerHtml(opts);
}
//设定页数及html
function setPagerHtml(opts) {
var $content = $("<div class='pages'></div>");
var startPageIndex = 1;
//若页码超出
if (opts.PageCount <= 0) opts.PageCount = 1;
//末页
var endPageIndex = parseInt(opts.PageCount % parseInt(opts.PageSize)) > 0 ? parseInt(opts.PageCount / opts.PageSize) + 1 : parseInt(opts.PageCount / opts.PageSize);
if (opts.PageIndex <= 0) {
opts.PageIndex = 1;
} if (opts.IsShowNumberOnly) {
if (endPageIndex > 1) {
if (opts.PageIndex > endPageIndex) opts.PageIndex = endPageIndex;
if (opts.PageIndex <= 0) opts.PageIndex = startPageIndex;
for (var i = 1; i <= endPageIndex; i++) { if (opts.PageIndex == i) {
$content.append($("<span >" + i + "</span>"));
} else {
$content.append(renderNumberButton(i, i, opts));
}
}
}
} else {
var ranNumber = Math.floor(Math.random() * 10) + "" + Math.floor(Math.random() * 10);
if (opts.IsShowPage != false) {
$content.append($("<span >当前" + opts.PageIndex + " / " + endPageIndex + "页</span>"));
}
$content.append($("<span >共" + opts.PageCount + "条数据</span>"));
if (opts.PageIndex > endPageIndex) opts.PageIndex = endPageIndex;
if (opts.PageIndex <= 0) opts.PageIndex = startPageIndex;
var nextPageIndex = opts.PageIndex + 1;
var prevPageIndex = opts.PageIndex - 1;
if (opts.PageIndex == startPageIndex) {
$content.append($("<span class='first'>首 页</span>"));
$content.append($("<span class='first'>上一页</span>"));
} else {
$content.append(renderTopButton(1, "首 页", opts));
$content.append(renderTopButton(prevPageIndex, "上一页", opts));
}
//这里判断是否显示页码
if (opts.ShowPageNumber) {
//页码部分隐藏 只显示中间区域
if (endPageIndex <= 5 && opts.PageIndex <= 5) {
for (var i = 1; i <= endPageIndex; i++) {
if (i == opts.PageIndex) {
$content.append($("<span class='current'>" + i + "</span>"));
} else {
$content.append(renderButton(i, i, opts));
}
}
} else if (endPageIndex > 5 && endPageIndex - opts.PageIndex <= 2) {
$content.append($("<span class='dotted'>...</span>"));
for (var i = endPageIndex - 4; i <= endPageIndex; i++) {
if (i == opts.PageIndex) {
$content.append($("<span class='current'>" + i + "</span>"));
} else {
$content.append(renderButton(i, i, opts));
}
}
} else if (endPageIndex > 5 && opts.PageIndex > 3) {
$content.append($("<span class='dotted'>...</span>"));
for (var i = opts.PageIndex - 2; i <= opts.PageIndex + 2; i++) {
if (i == opts.PageIndex) {
$content.append($("<span class='current'>" + i + "</span>"));
} else {
$content.append(renderButton(i, i, opts));
}
}
$content.append($("<span class='dotted'>...</span>"));
} else if (endPageIndex > 5 && opts.PageIndex <= 3) {
for (var i = 1; i <= 5; i++) {
if (i == opts.PageIndex) {
$content.append($("<span class='current'>" + i + "</span>"));
} else {
$content.append(renderButton(i, i, opts));
}
}
$content.append($("<span class='dotted'>...</span>"));
}
}
if (opts.PageIndex == endPageIndex) {
$content.append($("<span class='last'>下一页</span>"));
$content.append($("<span class='last'>末 页</span>"));
} else {
$content.append(renderButton(nextPageIndex, "下一页", opts));
$content.append(renderButton(endPageIndex, "末 页", opts));
} if (opts.IsShowTurnTo) {
$content.append($("<span>跳转至第<input type='text' id='indexVal" + ranNumber + "' />页</span>"));
$content.append(renderTurnToButton(ranNumber, opts));
}
$content.append(renderReflash(opts.PageIndex,opts));
}
$content.append($("<div style='clear:both;'></div>"));
return $content;
}
function renderTurnToButton(i, opts) {
var $turnto = $("<span><a title='跳转' class='btn40x20' >跳转 </a></span>");
$turnto.click(function () {
turnTo(i, opts);
});
return $turnto;
}
function renderReflash(goPageIndex,opts)
{
var $turnto = $("<span style='display:none;'><a title='刷新' class='page_current'>刷新</a></span>");
$turnto.click(function () {
PageClick(goPageIndex, opts);
});
return $turnto;
}
function renderTopButton(goPageIndex, text, opts) {
var $goto = $("<span class='prev' title='第" + goPageIndex + "页' >" + text + "</span>'");
$goto.click(function () {
PageClick(goPageIndex, opts);
});
return $goto;
}
function renderButton(goPageIndex, text, opts) {
var $goto = $("<span class='p_next' title='第" + goPageIndex + "页' >" + text + "</span>'");
$goto.click(function () {
PageClick(goPageIndex, opts);
});
return $goto;
} function renderNumberButton(goPageIndex, text, opts) {
var $goto = $("<span title='第" + goPageIndex + "页' style='cursor: pointer;' class='current' >" + text + "</span>'");
$goto.click(function () {
PageClick(goPageIndex, opts);
});
return $goto;
}
//初始化参数
var pagerDefaults = {
PageCount: 1, //总行数
PageIndex: 1, //当前页数
PageSize: 20, //每页显示行数
ShowPageNumber: false, //显示页码
IsShowPage: true, //显示当前 1/1页
IsShowTurnTo: true, //显示跳转
IsShowNumberOnly: false, //只显示页码
IsShowLoadMovie: false,
PageId: "#pageing", //要显示页码的地方
Url: "", //要post数据的地方
Options: {}, //要post到服务端的参数
CallBack: function () { return 1; } //回调函数,可在此处执行数据绑定,一定要返回行总数
}
})(jQuery);

支持查询数据后,更改查询条件不影响现在的分页条件。支持界面刷新,支持自定义查询参数。支持查询出错报错功能,支持不与服务器交互呈现分页。

调用方法:

 InitPager({
PageId: "#paging",
Url: "/ashx/teacherHandler.ashx",
Options: { swType: "GetDataList", agentId: "-1", orgId: "-1", schoolId: schGuid, departId: depGuid, name: name, phone: phone, s: s, card: card, cardNo: cardNo },
CallBack: function (result) {
$('#tbody').html('');
$("#demo").tmpl(result.Rows).appendTo("#tbody"); //要返回总数,这里的result包括当前页数,每页显示行数
return result.Total;
}
});

可以自定义查询页数和每页显示条数。

下面是用到的样式文件:

 /*--
.pageinfo{ float:left; height:auto; width:auto;}
.pages { float: right; height: 30px; overflow: hidden; font-family: Arial,SimSun; }
.pages li { display:inline-block; margin-right:10px;height:30px;}
.pages .dotted { font-weight: bold; }
.pages .beginEnd { height: 28px;border:1px solid #ccc;color:#0063DC;
line-height: 28px;}
.pages A { color:#0063DC; }
.pages span { cursor: pointer;height: 28px;color:#0063DC;
min-width: 40px;
overflow: hidden;
padding:3px 5px;
text-align: center;
vertical-align: middle;
white-space: nowrap; background:#fff; }
.prev{ background: url(../../Img/login/prompt.png) no-repeat 0 -180px;
height: 23px; line-height: 23px; padding-top: 1px; }
.pages span:hover { border:1px solid #ff6600;;line-height: 28px; background:#FFEEE5; color: #ff6600;; }
.pages A { text-decoration: none; }
.pages A:visited { color: #ff6600;; }
.pages A:hover { background: #1f3a87; }
.pages .current { background: #1f3a87; }
.pages .current { font-weight: bold; }
.pages SPAN { color: #ccc; } --*/ .pager{ margin-top:10px; margin-bottom:10px;height:20px;}
.pages { float: right; height: 30px; overflow: hidden; font-size:12px; overflow:hidden; }
.pages span {
overflow: hidden;
text-align: center; margin:0 5px; line-height:15px;
}
.pages .current{ background-color: #FFEEE5;border: 1px solid #357B1C;color: #357B1C;; font-weight:; }
.pages input{ width:22px; border:1px solid #ccc; vertical-align: middle; text-align:left; color:#000; font-family:Arial;
margin:0 5px; height:14px; padding:3px; font-size:12px; font-family:Arial;}
.pages .first,.pages .prev,.pages .p_next,.pages .last{ background: url(/skin/skin1/Img/prompt.gif) no-repeat; cursor: pointer;color:#357B1C;border:1px solid #ccc; height:15px;
vertical-align: middle; white-space: nowrap;overflow:hidden; display:inline-block; }
.pages .first{ background-position:0 -497px; color:#000; padding:3px 5px 3px 15px; *padding:6px 5px 1px 15px;*background-position:0 -496px; /*IE6*/ }
.pages .prev{ background-position:0 -417px; color:#357B1C;; padding:3px 5px 3px 15px;*padding:6px 5px 1px 15px; *background-position:0 -416px;/*IE6*/}
.pages .prev:hover{border:1px solid #357B1C;; color: #357B1C;; padding:3px 5px 3px 15px;*padding:6px 5px 1px 15px;}
.pages .p_next{background-position:right -456px; color:#357B1C;; padding:3px 15px 3px 5px;*padding:6px 15px 1px 5px; *background-position:right -455px;/*IE6*/}
.pages .p_next:hover{border:1px solid #357B1C;; color: #357B1C;; padding:3px 15px 3px 5px;*padding:6px 15px 1px 5px;}
.pages .last{background-position:right -536px; color:#000; padding:3px 15px 3px 5px; *padding:6px 15px 1px 5px;*background-position:right -535px;/*IE6*/}
.btn40x20{width:40px; height:20px;
color:#357B1C;
cursor:pointer;
vertical-align:middle;
text-align:center;
overflow:hidden;
padding:;
border:1px solid #cccccc;
color:#000; font:12px/20px Tahoma, "宋体", sans-serif; display:inline-block;}

JQuery 分页显示jquery-pager-1.0.js的更多相关文章

  1. jQuery分页插件(jquery.page.js)的使用

    效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件——jQuery.page.js用法很简单,效果很棒   1.前端   首先html的head中引入相关css与js <lin ...

  2. Jquery 分页插件 Jquery Pagination

    Jquery 分页插件 Jquery Pagination 分页插件来说,我觉得适用就行,尽量简单然后能够根据不同的应用场景能够换肤.展现形式等. 对于初学者想写分页插件的同学,也可以看下源码,代码也 ...

  3. 【jQuery 分页】jQuery分页功能的实现

    自写的jQuery实现分页功能的分页组件: 功能效果如下: 分页组件就是上图中的三部分, 分别放在表格上部  和下部 . 其中, 1>>>页面的代码如下: product.jsp 其 ...

  4. 分享一个Jquery 分页插件 Jquery Pagination

    分页插件来说,我觉得适用就行,尽量简单然后能够根据不同的应用场景能够换肤.展现形式等. 对于初学者想写分页插件的同学,也可以看下源码,代码也挺简单明了的,也助于自己写个小插件. 不过我比较懒,一般直接 ...

  5. js前端分页之jQuery

    锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比 ...

  6. jquery分页组件(每页显示多少条)

    /** * 功能说明:jPager 分页插件 * 参数说明:pages:[] 分页的控件个数 @id:显示分页的div ID,@showSelectPage: 是否显示当前分页的条目过滤下拉框 * @ ...

  7. 锋利的js前端分页之jQuery

    大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比较简单. /** * pageSi ...

  8. 分页插件jquery.simplePagination.js使用

    利用ecshop后台,利用插件更改分页显示样式遇到的问题,由于是利用Ajax获取数据进行页面数据更新?所以出现了以下情况: 初始化页面前 : 分页更新后: 点击后出现了分页插件内容消失, 原因:分页一 ...

  9. jquery ajax自定义分页组件(jquery.loehpagerv1.0)原创

    简单的两个步骤截可调用 <script src="<%=basePath%>/resources/js/jquery-1.7.1.min.js"></ ...

随机推荐

  1. OAuth2.0学习(3-1)发布 spring-oauth-client 和 spring-oauth-server

    1.发布spring-oauth-server应用 1.1.创建案例数据库oauth2,root/Abc1234% 1.2.执行脚本,创建数据结构和demo数据 init_db.sql (user_用 ...

  2. django的models模块查询方法

    假定models中有一个类BookInfo 模块查询不同于sql语句,模块查询的结果会返回符合条件的整个一行的对象,或者多个对象组成的查询集. 查询集类似列表,有相似的方法. 1 model查询语句: ...

  3. 南阳OJ-6-喷水装置(一)

    题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=6 题目大意: 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷 ...

  4. freeplane使用指南

    网上freeplane的详细使用好像比较少,全面的也就官方的英文版文档. 喜欢freeplane的原因仅仅是因为大标题的文字与内边距可以调节,xmind等其他的导图好像都是不能调节的. 心一狠,凭着半 ...

  5. 笔记本电脑连wifi然后通过有线网口做桥接

    让你的笔记本电脑作为主机,台式机通过通过一根网线连接到你的笔记本,共享无线网络上网,可以进行如下操作: 1,先找跟网线将两台电脑连接. 2,打开win7自带的windows防火墙,此步在控制面板里可以 ...

  6. Linux OpenGL 实践篇-1 OpenGL环境搭建

    本次实践所使用环境为CentOS 7. 参考:http://www.xuebuyuan.com/1472808.html OpenGL开发环境搭建: 1.opengl库安装 opengl库使用mesa ...

  7. C#在使用Assembly加载程序集时失败

    错误现象: 进行插件读取时出现错误:"尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理.此发行版的 .NET Framework ...

  8. 如何让服务端同时支持WebSocket和SSL加密的WebSocket(即同时支持ws和wss)?

    自从HTML5出来以后,使用WebSocket通信就变得火热起来,基于WebSocket开发的手机APP和手机游戏也越来越多.我的一些开发APP的朋友,开始使用WebSocket通信,后来觉得通信不够 ...

  9. 计蒜客NOIP2017提高组模拟赛(五)day2-成绩统计

    传送门 用hash,因为map的复杂度可能在这题中因为多一个log卡掉,但是hash不会 可能因为这个生成的随机数有循环的情况,不是完全均匀的 而且这题hash表的长度也可以开的很大 #include ...

  10. 【20170920校内模拟赛】小Z爱学习

    所有题目开启-O2优化,开大栈空间,评测机效率为4亿左右. T1 小 Z 学数学(math) Description ​ 要说小 Z 最不擅长的学科,那一定就是数学了.这不,他最近正在学习加法运算.老 ...