首页 【jquery模仿net控件】简单分页控件1.0,附上gridview使用测试

【jquery模仿net控件】简单分页控件1.0,附上gridview使用测试

举报
开通vip

【jquery模仿net控件】简单分页控件1.0,附上gridview使用测试前言 最近项目需求需要用到jquery的分页功能,所以就自己模仿着其它地方的写了一个,现在配合着原来写的gridview一起使用看看效果。 我们项目有个地方有点痛苦,他不能返回数据的总记录数,这个bug不修复我这边都只能动态附初始值,http://pifu.ttplay8.cn 另外首页尾页等因为刚刚写起皆暂时未实现, 等后面点调整后,有必要便一起发出来。 截图 分页代码使用示例 ...

【jquery模仿net控件】简单分页控件1.0,附上gridview使用测试
前言 最近项目需求需要用到jquery的分页功能,所以就自己模仿着其它地方的写了一个,现在配合着原来写的gridview一起使用看看效果。 我们项目有个地方有点痛苦,他不能返回数据的总记录数,这个bug不修复我这边都只能动态附初始值,http://pifu.ttplay8.cn 另外首页尾页等因为刚刚写起皆暂时未实现, 等后面点调整后,有必要便一起发出来。 截图 分页代码使用示例
  分页控件代码 var Pagination = function (_cfg) { var sender = this; this.cfg = { parentEl: $('body'), pageSize: 10, pageNum: 7, //每页放几个显示的1,2,3,4 pageEdge: 2, linkTo: '#', linkText: 'pageno', preText: '上一页', nextText: '下一页', ellipseText: "...", pageChaged: function () { return false; } }; if (_cfg) { $.each(_cfg, function (key, value) { sender.cfg[key] = value; }); } this.pageIndex = 0; this.allRow = 0; this.totalPage = 0; this.el = null; this.visible = false; this.prePage = null; this.nextPage = null; this.numPage = null; }; Pagination.prototype.render = function () { this.onInit(); this.preRender(); }; Pagination.prototype.preRender = function () { var scope = this; var prePage = this.prePage; var nextPage = this.nextPage; var numPage = this.numPage; var total = this.totalPage; var index = this.pageIndex; prePage.attr('class', 'prev'); if (index == 0) { prePage.attr('class', 'current prev'); } nextPage.attr('class', 'next'); if (index == total - 1) { nextPage.attr('class', 'current next'); } $.each(numPage, function (i, item) { item.removeAttr('class'); if (scope.pageIndex == parseInt(item.html()) - 1) { item.attr('class', 'current'); } }); }; Pagination.prototype.onInit = function () { this.init(); this.initHtml(); this.eventBind(); }; Pagination.prototype.init = function () { var cfg = this.cfg; var totalPage = this.totalPage; var allRow = this.allRow; var pageSize = cfg.pageSize; this.totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow / pageSize + 1; this.totalPage = parseInt(this.totalPage); if (totalPage <= 1) { this.visible = false; } }; Pagination.prototype.getNumPage = function () { var cfg = this.cfg; var pageSize = cfg.pageSize; var index = this.pageIndex; var totalPage = this.totalPage; var pageNum = cfg.pageNum; var limit = pageNum / 2; var _limit = parseInt(limit); limit = limit > _limit ? _limit + 1 : _limit; var numPage = []; var numArr = []; for (var i = 0; i < pageNum; i++) { if (index < limit) { numArr.push(i + 1); } else if (totalPage - index <= limit) { numArr.push(totalPage - pageNum + i + 1); } else { numArr.push(index - limit + i + 2); } } var elStr = ''; var linkTo = cfg.linkTo; if (linkTo == '#') { for (var i = 0, len = numArr.length; i < len; i++) { var tempEl = $('' + numArr[i].toString() + ''); numPage.push(tempEl) } } else { var linkText = cfg.linkText; var sign = '?'; if (linkTo.indexOf('?') != -1) { sign = '&'; } for (var i = 0, len = numArr.length; i < len; i++) { var tempEl = $('' + numArr[i].toString() + ''); numPage.push(tempEl); } } return numPage; }; Pagination.prototype.initHtml = function () { var cfg = this.cfg; var pageInfo = $(''); var linkTo = cfg.linkTo; var _pre = ''; var _nex = ''; if (linkTo != '#') { var linkText = cfg.linkText; var sign = '?'; if (linkTo.indexOf('?') != -1) { sign = '&'; } _pre = ''; _nex = ''; } var prePage = $(_pre); var nextPage = $(_nex); var numPage = this.getNumPage(); pageInfo.append(prePage); $.each(numPage, function (i, item) { pageInfo.append(item); }); pageInfo.append(nextPage); this.el = pageInfo; this.prePage = prePage; this.nextPage = nextPage; this.numPage = numPage; cfg.parentEl.append(pageInfo); }; Pagination.prototype.eventBind = function (func) { var scope = this; var cfg = this.cfg; var prePage = this.prePage; var nextPage = this.nextPage; var numPage = this.numPage; prePage.unbind('click'); prePage.bind('click', function (e) { if (scope.pageIndex != 0) { scope.pageIndex = scope.pageIndex - 1; scope.pageChanged(); } }); $.each(numPage, function (i, item) { item.unbind('click'); item.bind('click', function (e) { if (scope.pageIndex != parseInt(item.html()) - 1) { scope.pageIndex = parseInt(item.html()) - 1; scope.pageChanged(); } }); }); nextPage.unbind('click'); nextPage.bind('click', function (e) { if (scope.pageIndex != scope.totalPage - 1) { scope.pageIndex = scope.pageIndex + 1; scope.pageChanged(); } }); }; Pagination.prototype.pageChanged = function () { var scope = this; var cfg = this.cfg; scope.el.remove(); var pageChaged = cfg.pageChanged; if (pageChaged && typeof (pageChaged) == 'function') { pageChaged(this); } this.render(); // alert(this.pageIndex); };   后续 由于各方面皆不完整,此处便不作详细 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 ,有必要的话,以后整理后会形成API,但是可能没有必要,因为代码总的来说还是很水的...... 在学习吧......
本文档为【【jquery模仿net控件】简单分页控件1.0,附上gridview使用测试】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_763920
暂无简介~
格式:doc
大小:149KB
软件:Word
页数:10
分类:互联网
上传时间:2012-06-08
浏览量:9