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 ...
随机推荐
- python3.7安装Scrapy
环境:windows 7. 安装过程中遇到的问题 1.error: Unable to find vcvarsall.bat 2.1083: Cannot open include file: 'ba ...
- 2018.6.1学习CSS5里顺丰盒子小问题
在制作下面这样的小盒子时 编写的代码 首先要对li元素设置浮动. 在设置这个li元素下面的a元素时, 因为没有转行内块,inline-block,结果显示出来的页面,鼠标在经过这个选择时(:hover ...
- java字符串转Date
public static Date StrToDate(String str) { SimpleDateFormat format = new SimpleDateFormat("yyyy ...
- javascript中typeof与instanceof的区别
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...
- JS获取元素属性、样式getComputedStyle()和currentStyle方法兼容性问题
1. getComputedStyle() 方法获取到的是经过计算机/浏览器计算后的样式 getComputedStyle($("#div")).width; 兼容性:IE6 7 ...
- Xtrareport绘制行号
需要是用事件beforePrint (在打印数据之前的事件) private void xrTableCell12_BeforePrint(object sender, System.Drawing. ...
- 权限修饰符(public、protected、default、private)权限验证
一.测试方法 在authorityTest包中建类AuthorityValidate package authorityTest; public class AuthorityValidate { p ...
- 粗看ES6之字符串
标签: javascript es6 字符串新增特性 新增二个方法 - startsWith/endsWith 字符串模板 - 反单引号的应用 startsWith 判断字符串以是否以某某开头,返回一 ...
- u-boot分析(十一)----MMU简单分析|u-boot分析大结局|学习规划
u-boot分析(十一) 通过前面十篇博文,我们已经完成了对BL1阶段的分析,通过这些分析相信我们对u-boot已经有了一个比较深入的认识,在BL2阶段大部分是对外设的初始化,并且有的我们已经分析过, ...
- count group by 组合用法
1 需求是 求订单表1个月内 订单累计费用超过500的有多少人 根据题意 最先写出的sql是这样的 SELECT SUM(totalfee)AS n FROM sendorder WHERE `add ...