博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于avalon+jquery做的bootstrap分页控件
阅读量:5168 次
发布时间:2019-06-13

本文共 3268 字,大约阅读时间需要 10 分钟。

刚开始学习avalon,项目需要就尝试写了个分页控件Pager.js;基于BootStrap样式这个大家都很熟悉

在这里推荐下国产前端神器avalon;确实好用,帮我解决了很多前端问题。

不多说了,代码贴上:

1 /** 2  * options.id avalon 所需要的$id 3  * options.total 总记录数 4  * options.rows 行数 5  * options.callback 6  */ 7 var Pager=function(options){ 8     var _this=this; 9     _this.callback=options.callback||function(){};10     _this.model=avalon.define({11         $id:options.id,12         currentPage:3,13         rows:10,14         totalRecord:100,15         totalPage:10,16         list:[],17         liPageNums:3,18         init:function(options){//初始化19             _this.model.reset(options);20             _this.model.currentPage=1;21             22         },23         jump:function(page){//界面跳转24             _this.callback.call(_this,page,_this.model.rows);25             _this.model.currentPage=page;26             _this.model.refresh();27             //alert(page);28         },29         prev:function(){30             if(_this.model.currentPage-1<1)return;31             _this.model.jump(_this.model.currentPage-1);32         },33         next:function(){34             if(_this.model.currentPage+1>_this.model.totalPage)return;35             _this.model.jump(_this.model.currentPage+1);36         },37         refresh:function(){//刷新分页工具栏,计算显示内容38             _this.model.list=[];39             var ll=new Array();40             var cp=_this.model.currentPage;41             for(var i=_this.model.liPageNums;i>0;i--){42                 ll.push(cp-i);43             }44             ll.push(cp);45             for(var i=1;i<=_this.model.liPageNums;i++){46                 ll.push(cp+i);47             }48             while(ll[0]<1){49                 for(var i=0;i
_this.model.totalPage){54 for(var i=0;i
=1&&ll[i]<=_this.model.totalPage){60 _this.model.list.push(ll[i]);61 }62 }63 },64 /**65 * options.total 总记录数66 * options.rows 每页记录数67 */68 reset:function(options){//数据加载后可按需要重置69 _this.model.rows=options.rows||_this.model.rows;70 _this.model.totalRecord=options.total||0;71 _this.model.totalPage=_this.model.totalRecord%_this.model.rows==0?_this.model.totalRecord/_this.model.rows:parseInt(_this.model.totalRecord/_this.model.rows+1);72 _this.model.refresh();73 }74 });75 _this.getModel=function(){
return _this.model;};76 _this.model.init(options);77 };

 

HTML

1 
2
20

 

调用代码,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");

 

最终效果:

转载于:https://www.cnblogs.com/lingx/p/5765827.html

你可能感兴趣的文章
Cookie 读写类
查看>>
基于管道的popen和pclose函数
查看>>
hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
查看>>
写一个TT模板自动生成spring.net下面的配置文件。
查看>>
背景透明
查看>>
Linux命令详解----ln
查看>>
Combination Sum
查看>>
ZigZag Conversion
查看>>
svn图标不显示的解决方案
查看>>
javascript中的表结构
查看>>
javascript使用栈结构将中缀表达式转换为后缀表达式并计算值
查看>>
一些 CSS 框架
查看>>
5.13 工作笔记
查看>>
Unicode和多字节字符集 (MBCS) 杂谈
查看>>
left 和 margin-left
查看>>
WOW! I have a TOFEL BLOG!
查看>>
PAT (Basic Level) Practise (中文)- 1016. 部分A+B (15)
查看>>
应用程序利用回调向表现层实时推送数据
查看>>
网络编程-UDP
查看>>
[JAVA] Tcp客户端和服务器简单代码
查看>>