基于avalon+jquery做的bootstrap分页控件
刚开始学习avalon,项目需要就尝试写了个分页控件Pager.js;基于BootStrap样式这个大家都很熟悉
在这里推荐下国产前端神器avalon;确实好用,帮我解决了很多前端问题。
不多说了,代码贴上:
/** * options.id avalon 所需要的$id * options.total 总记录数 * options.rows 行数 * options.callback */ var Pager=function(options){ var _this=this; _this.callback=options.callback||function(){}; _this.model=avalon.define({ $id:options.id, currentPage:3, rows:10, totalRecord:100, totalPage:10, list:[], liPageNums:3, init:function(options){//初始化 _this.model.reset(options); _this.model.currentPage=1; }, jump:function(page){//界面跳转 _this.callback.call(_this,page,_this.model.rows); _this.model.currentPage=page; _this.model.refresh(); //alert(page); }, prev:function(){ if(_this.model.currentPage-1<1)return; _this.model.jump(_this.model.currentPage-1); }, next:function(){ if(_this.model.currentPage+1>_this.model.totalPage)return; _this.model.jump(_this.model.currentPage+1); }, refresh:function(){//刷新分页工具栏,计算显示内容 _this.model.list=[]; var ll=new Array(); var cp=_this.model.currentPage; for(var i=_this.model.liPageNums;i>0;i--){ ll.push(cp-i); } ll.push(cp); for(var i=1;i<=_this.model.liPageNums;i++){ ll.push(cp+i); } while(ll[0]<1){ for(var i=0;i<ll.length;i++){ ll[i]=ll[i]+1; } } while(ll[ll.length-1]>_this.model.totalPage){ for(var i=0;i<ll.length;i++){ ll[i]=ll[i]-1; } } for(var i=0;i<ll.length;i++){ if(ll[i]>=1&&ll[i]<=_this.model.totalPage){ _this.model.list.push(ll[i]); } } }, /** * options.total 总记录数 * options.rows 每页记录数 */ reset:function(options){//数据加载后可按需要重置 _this.model.rows=options.rows||_this.model.rows; _this.model.totalRecord=options.total||0; _this.model.totalPage=_this.model.totalRecord%_this.model.rows==0?_this.model.totalRecord/_this.model.rows:parseInt(_this.model.totalRecord/_this.model.rows+1); _this.model.refresh(); } }); _this.getModel=function(){return _this.model;}; _this.model.init(options); };
HTML
<div class="col-md-12"> <div class="m-page-footer" ms-controller="footer"> <table width="100%"> <tr> <td> <div class="pages_info pull-left">显示 {{(currentPage-1)*rows+1}} 到 {{currentPage*rows>totalRecord?totalRecord:currentPage*rows}} 项,共 {{totalRecord}} 项 </div> </td> <td style="text-align:right;"> <div class="dataTables_paginate paging_simple_numbers pages_num"> <ul class="pagination" style="margin:0;"> <li class="paginate_button previous" ms-class="disabled:currentPage<=1" aria-controls="editable" tabindex="0" id="editable_previous"><a href="javascript:;" ms-click="prev">上一页</a></li> <li class="paginate_button " aria-controls="editable" tabindex="0" ms-repeat="list" ms-class="active:el==currentPage"><a href="javascript:;" ms-click="jump(el)">{{el}}</a></li> <li class="paginate_button next" ms-class="disabled:currentPage>=totalPage" aria-controls="editable" tabindex="0" id="editable_next"><a href="javascript:;" ms-click="next">下一页</a></li> </ul> </div> </td> </tr> </table> </div> </div>
调用代码,callbakl回调指向列表刷新方法reloadGrid,function reloadGrid(page,rows)
var pager=new Pager({id:"footer",rows:20,callback:reloadGrid}); $.post("e",params,function(json){ model.list=json.rows; pager.getModel().reset({total:json.total}); },"json");
最终效果:
基于avalon+jquery做的bootstrap分页控件的更多相关文章
- 基于jquery扩展漂亮的分页控件(ajax)
分页控件式大家在熟悉不过的控件,很多情况下都需要使用到分页控件来完成列表数据加载操作,在很多分页控件中有的编写麻烦,有的应用扩展比较复杂,有的分页控件样式比较丑陋,有的分页控件用户体验操作比较简单等等 ...
- jQuery Pagination Plugin ajax分页控件
<html> <body> <div id="datagrid"> </div> <div id="paginati ...
- 基于WPF系统框架设计(10)-分页控件设计
背景 最近要求项目组成员开发一个通用的分页组件,要求是这个组件简单易用,通用性,兼容现有框架MVVM模式,可是最后给我提交的成果勉强能够用,却欠少灵活性和框架兼容性. 设计的基本思想 传入数据源,总页 ...
- sharepoint 2010 列表数据分页控件介绍 pagination UserControl
转:http://blog.csdn.net/chenxinxian/article/details/8714391 这里主要是介绍下最近开发的一个sharepoint列表或者文档库的分页控件,并且把 ...
- 基于Bootstrap仿淘宝分页控件实现
.header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { t ...
- ajax 分页控件,基于jquery
/* 分页插件,依赖jQuery库 version: 1.1.0 author: Harrison Cao release date: 2013-09-23 相对 v1.0版本 修正了分页居中 使用方 ...
- 基于存储过程的MVC开源分页控件--LYB.NET.SPPager
摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...
- MvcPager分页控件以适用Bootstrap
随笔- 9 文章- 0 评论- 33 修改MvcPager分页控件以适用Bootstrap 效果(含英文版,可下载) 软件开发分页效果必不可少,对于Asp.Net MVC 而言,MvcPag ...
- jquery 分页控件2
jquery 分页控件(二) 上一章主要是关于分页控件的原理,代码也没有重构.在这一章会附上小插件的下载链接,插件主要就是重构逻辑部分,具体可以下载源文件看下,源代码也有注释.为了测试这个插件是能用的 ...
随机推荐
- jQuery静态分页功能
分页功能在做项目的过程中是常常用到的,下面是我常用的一款分页效果: 1.分页的CSS样式(page.css) #setpage { margin: 15px auto; text-align: cen ...
- Angular & RxJS & Typescript
Angular & RxJS & Typescript https://www.wmnetwork.cc/d/?mid=75627 杭州经开区国际创博中心 https://www.w ...
- asp+access win2008php+mysql /dedecms 配置总结
1. IIS 应用池 高级设置 启用32位应用程序:True 2. c盘window/Temp user 应该有管理权限 如果不行 creator owner 给予修改权限 ...
- DateBase -- Rising Temperature
Question: Given a Weather table, write a SQL query to find all dates' Ids with higher temperature co ...
- [洛谷P4630][APIO2018] Duathlon 铁人两项
题目大意:给一张无向图,求三元组$(u,v,w)$满足$u->v->w$为简单路径,求个数 题解:圆方树,缩点后$DP$,因为同一个点双中的点一定地位相同 卡点:1.$father$数组开 ...
- 绑定域名到 GitHub Pages
简介 我在阿里云上注册了一个新域名:yuanzb.com,我已经在GitHub Pages上建立了自己的博客:http://yuanzb.github.io/yuanzb/.现在我希望将yuanzb. ...
- JS DOM对象与jQuery对象的转换
JS转jQuery // 直接用$()来包裹 如同$(this) $(document) var jsObj = document.getElementById('test'); var jquery ...
- code forces 979C
C. Kuro and Walking Route time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- div盒子模型(一图胜千言)
offsetLeft 获取的是相对于父对象的左边距 left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距 如果父div的position定义为relat ...
- codevs 1269 匈牙利游戏——次短路(spfa)
欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络. 你被强制要求参加一个赛跑作为一个TV秀的一部分节目,比赛中你需要穿越这些街道,从s开始,到t结束. 很自然的,你想要尽快的完 ...