ajax实现分页页签
在一些搜索列表的页面中,我们会遇到一些需要处理页签的需求,一般这样的页面,要么是在JSP中处理,每次都跳页。这样做是个很方便的方法。但是如果页面上有很多和列表无关,每次都需要重新渲染是不是显得慢了一些。那么,还有另一种方法——ajax请求列表,这种方法同样需要和后端预定接口格式,但是这里只描述分页这块的事情,为了专注于分页的逻辑,页签的式样我就用bootstrap来处理。
<ul class="pagination">
<li data-pagenum="0" class="active"><a href="javascript:void(0);">1</a>
</li>
<li data-pagenum="1"><a href="javascript:void(0);">2</a>
</li>
<li data-pagenum="2"><a href="javascript:void(0);">3</a>
</li>
<li data-pagenum="3"><a href="javascript:void(0);">4</a>
</li>
<li data-pagenum="4"><a href="javascript:void(0);">5</a>
</li>
<li data-pagenum="5"><a href="javascript:void(0);">6</a>
</li>
<li data-pagenum="6"><a href="javascript:void(0);">7</a>
</li>
<li data-pagenum="7"><a href="javascript:void(0);">8</a>
</li>
<li data-pagenum="8"><a href="javascript:void(0);">9</a>
</li>
<li data-pagenum="1"><a href="javascript:void(0);">下一页</a>
</li>
<li data-pagenum="5559"><a href="javascript:void(0);">尾页</a>
</li>
</ul>
接下来我们专注逻辑部分
既然要处理页签,就不得不提到接口返回了那些数据,一般来说除了返回请求的list外还应给有总共有多少条信息count,
总页数totalPage, 当前页curPage。当然也有其他的信息,不过有上面3个信息就已经可以处理页签了。
我们封装一个专门处理页签的函数function setPageFoot(count, totalPage, curPage){}
/*分页 设置*/
function setPageFoot(count, totalPage, curPage){ var pageStr = '';
var i_page_start = 0;
var i_page_end = 9;
if(totalPage < 9){
i_page_end = totalPage;
}else{ if((curPage + 8) <= (totalPage-1)){
i_page_end = curPage + 8;
}else if((curPage + 7) <= (totalPage-1)){
i_page_end = curPage + 7;
}else if((curPage + 6) <= (totalPage-1)){
i_page_end = curPage + 6;
}else if((curPage + 5) <= (totalPage-1)){
i_page_end = curPage + 5;
}else if((curPage + 4) <= (totalPage-1)){
i_page_end = curPage + 4;
}else if((curPage + 3) <= (totalPage-1)){
i_page_end = curPage + 3;
}else if((curPage + 2) <= (totalPage-1)){
i_page_end = curPage + 2;
}else if((curPage + 1) <= (totalPage-1)){
i_page_end = curPage + 1;
}else{
i_page_end = curPage;
}
i_page_start = i_page_end-8;
} if(curPage >= 4 && curPage + 4 < totalPage - 1){
i_page_start -= 4;
i_page_end -= 3;
} var pageItems = [];
if(curPage > 0){
pageItems.push({
'txt': '首页',
'data-pageNum': 0
});
if(i_page_start > 0){
pageItems.push({
'txt': '上一页',
'data-pageNum': i_page_start-1
});
}
}
for(; i_page_start <= i_page_end; i_page_start ++){
var pageItem = {
'txt': i_page_start + 1 + '',
'data-pageNum': i_page_start
}
pageItems.push(pageItem);
} if(curPage < totalPage - 1){
if(curPage < totalPage-1){
pageItems.push({
'txt': '下一页',
'data-pageNum': curPage + 1
});
}
pageItems.push({
'txt': '尾页',
'data-pageNum': totalPage - 1
});
} $.each(pageItems, function (i,v){
var pageStrItem = '<li data-pageNum="'+v['data-pageNum']+'"><a href="javascript:void(0);">'+v.txt+'</a></li>';
if(v['data-pageNum'] === curPage){
pageStrItem = '<li data-pageNum="'+v['data-pageNum']+'" class="active"><a href="javascript:void(0);">'+v.txt+'</a></li>';
}
pageStr += pageStrItem;
}); $('.mobHot-contain .panel-footer .pagination').html('').append(pageStr);
}
这样我们就完成了这次页签的刷新。
ajax实现分页页签的更多相关文章
- ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- JavaScript选项卡/页签/Tab的实现
选项卡,也称页签,英文用Tab(Module-Tabs)表示.Tab将不同的内容重叠放在一个布局块内,重叠的内容区里每次只有其中一个是可见的. Tab可以在相同的空间里展示更多的信息,它把相似的主题分 ...
- Ajax做分页
Ajax做分页 用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数. .设置分页显示显示的样式,显示效果如下. 复制代码 <style type=" ...
- 利用Linq + Jquery + Ajax 异步分页的实现
在Web显示的时候我们经常会遇到分页显示,而网上的分页方法甚多,但都太过于消耗带宽,所以我想到了用Ajax来分页,利用返回的Json来处理返回的数据, 大大简化了带宽的压力. 先说下思路,无非就是异步 ...
- 5.Hibernate实现全套增删改查和ajax异步分页
1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...
- PHP中使用jQuery+Ajax实现分页查询多功能操作
1.首先做主页面Ajax_pag.php 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UT ...
- WPF如何实现一个漂亮的页签导航UI
最近看到一个比较漂亮的UI主界面,该UI是用左边的页签进行导航,比较有特色,就想着尝试用WPF来实现一下.经过一番尝试,基本上将UI设计图的效果用WPF程序进行了实现.下面介绍一下主要的思路: 1 U ...
- C# 重绘tabControl,添加关闭按钮(页签)
C# 重绘tabControl,添加关闭按钮(页签) 调用方法 参数: /// <summary> /// 初始化 /// </summary> /// <param n ...
- 实现TabView(页签)效果
今天花了点时间,设计了一个网页上用的tabview(页签.tabcontrol)效果.个人觉得实现得比较不错,网页元素用得比较少,js代码也比较精练.测试了一下支持IE.FireFox以及chrome ...
随机推荐
- 单例模式+volatile禁止指令重排序
单例模式: 单例,顾名思义就是只能有一个.不能再出现第二个.就如同地球上没有两片一模一样的树叶一样. 在这里就是说:一个类只能有一个实例,并且整个项目系统都能访问该实例. 单例模式共分为两大类: 懒汉 ...
- spark第一篇:RDD Programming Guide
预览 在高层次上,每一个Spark应用(application)都包含一个驱动程序(driver program),该程序运行用户的主函数(main function),并在集群上执行各种并行操作. ...
- Hive学习(三)Hive的Java客户端操作
Hive的Java客户端操作分为JDBC和Thrifit Client,首先启动Hive远程服务: hive --service hiveserver 一.JDBC 在MyEclipse中首先创建连接 ...
- 关于imageview matrix
Matrix 是 Android SDK 提供的一个矩阵类,它代表一个 3 X 3 的矩阵 那么这 9 个浮点数的作用和意义是什么呢,从 Android 官方文档上看,它为这个数组中的每一个元素都定义 ...
- Murano Weekly Meeting 2016.05.10
Meeting time: 2016.May.10 1:00~2:00 Chairperson: Serg Melikyan, from Mirantis Meeting summary: 1. m ...
- iscroll.js文档
iScroll是高性能的.小尺寸的.无依赖关系的.支持多平台的滑动JavaScript库. 当然,不只是scroll,还有滚动.缩放.平移.无限滚动.视差滚动等. 为了达到更好的新能,所以iScrol ...
- vue-cli生成的重要代码详解
安装好vue-cli之后,我们可以在package.json中看到下面所示: { // 项目名称 "name": "myvue", // 项目版本 " ...
- 我使用的brackets插件
livereload atom dark theme autoprefixer auto save files on window blur beautify brackets file icons ...
- 【LDAP】Openldap导入数据
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://jerry12356.blog.51cto.com/4308715/1851186 ...
- 修改mysql表的字符集
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 修改数据库字符集: 代码如下: ALTER DAT ...