基于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 分页控件(二) 上一章主要是关于分页控件的原理,代码也没有重构.在这一章会附上小插件的下载链接,插件主要就是重构逻辑部分,具体可以下载源文件看下,源代码也有注释.为了测试这个插件是能用的 ...
随机推荐
- Linux查看端口被占用情形
查看某端口的占用情况: lsof -i:<端口号> 例如:lsof -i:8080 netstat -apn|grep <端口号> 例如: netstat -apn | gre ...
- HDU 4474 Yet Another Multiple Problem ( BFS + 同余剪枝 )
没什么巧办法,直接搜就行. 用余数作为每个节点的哈希值. #include <cstdio> #include <cstring> #include <cstdlib&g ...
- [转]Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
本文转自:http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 ...
- VS调试时不捕捉Exception
在方法上添加 [DebuggerHidden] 这样,发生错误的时候,VS就不会捕捉到这个错误,否则,会在错误的地方中断. [DebuggerHidden] public void DeleteAll ...
- JSP/Servlet Web 学习笔记 DayFour
Servlet概述 Servelt是使用Java Servlet应用程序接口及相关类和方法的Java程序. Servlet是用Java编写的Server端程序,它与协议和平台无关.Servlet运行于 ...
- Sth about 函数式编程(Functional Programming)
今天开会提到了函数式编程,针对不同类型的百年城方式,查阅了一部分资料,展示如下: 编程语言一直到近代,从汇编到C到Java,都是站在计算机的角度,考虑CPU的运行模式和运行效率,以求通过设计一个高效的 ...
- [洛谷P3810]【模板】三维偏序(陌上花开)
题目大意:有$n$个元素,第$i$个元素有三个属性$a_i,b_i,c_i$,设$f(i)=\sum\limits_{i\not = j}[a_j\leqslant a_i,b_j\leqslant ...
- Password [分块]
题面 $n,m,x \leq 10^5$ 思路 首先$n=2$做法很多,不讲了 $n=3$的时候,分块维护两个东西:每一个数出现次数的前缀和,和出现次数的出现次数的前缀和(说的有点绕,但是应该挺好理解 ...
- Codeforces Round #522 (Div. 2) C. Playing Piano
C. Playing Piano 题目链接:https://codeforces.com/contest/1079/problem/C 题意: 给出数列{an},现在要求你给出一个数列{bn},满足: ...
- 乌班图 root权限获取
点击左侧终端标 2 出现命令提示符 3 首先输入:sudo passwd root(设置root密码) 4 输入当前系统的账户密码(账户:admin-pc的密码) 5 输入新的root密码,确认新密码 ...