PS:前面忘了给大家讲解后台需要做的 ,同步分页的时候,我们只需要定义一个方法,给前台传递一个page对象,前台接收到直接展示即可;异步分页要多一步,首先还是写一个方法,传递初始对象,后面的ajax返回的时候需要再定义一个方法,作为分页数据刷新。

  上一篇文章为给大家讲到了同步分页,封装完整,复用性高,但是缺点就是每次点击的时候需要刷新整个界面,碍于开发的需要,当某些界面存在几个分页的时候缺点就出来了,于是又在这个基础上做了一些小调整,使用了ajax的方式,实现局部刷新分页,现在把代码给大家共享一下:

1、JSP页面跟同步分页差不多

a)、不在只是局限于只定义一个form表单,可以在每个需要分页的地方都写一个;

<div>
<div class="color size14" style="margin-top: 95px">
账号记录
</div>
<div class="table-responsive" style="margin-top: 20px;margin-left: 0">
<table id="sample-table-1" class="table table-striped table-bordered table-hover" style="margin-left: 0"> <thead>
<tr>
<th>序号</th>
<th>操作人</th>
<th>操作时间</th>
<th>操作描述</th>
<th>内容</th>
<th>结果</th>
</tr>
</thead>
<tbody id="operLog-tbody">
<%--分页内容--%>
<c:forEach items="${operLogPage.list}" var="operlog" varStatus="status">
<tr>
<td>${status.index+1}</td>
<td>${operlog.operater}</td>
<td>${operlog.updateTime}</td>
<td>${operlog.remark}</td>
<td>${operlog.operName}</td>
<td>${operlog.result}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<div class="page">
<form class="submitPage operlogForm" action="${ctx}/admin/userManage/getOperLogPagination" > </form>
</div>
</div>

  2、将同步分页的page.js里面的整体封装成一个方法,方便重复调用:

<!--基本信息分页-->
function getOperlogPage(operlogCurpage,operlogTotalPage,formName) {
var curPageNum = 1;
var curtotalpage = 4;
curPageNum = operlogTotalPage;
//前5页//后5页
//需要计算开始页数
var startpage = 1; if (operlogCurpage == null) {
operlogCurpage = 1;
}
if (operlogCurpage <= 3) {
startpage = 1;
} else {
startpage = operlogCurpage - 3 + startpage;
}
var prepage = operlogCurpage - 1;
var nextpage = parseInt(operlogCurpage) + 1;
var endpage = startpage + curtotalpage;
if (endpage > operlogTotalPage) {
endpage = operlogTotalPage;
}
var front = operlogCurpage - 3;
var back = parseInt(operlogCurpage) + 2;
//上一页
if (prepage >= 1) {
var prepage = '<input class="inp pages" id="oper_pre" type="button" value="上一页" onclick="nextOperlogPageToForm(' + prepage + ')">';
$(prepage).appendTo(formName);
}
//前省略
if (front > 0) {
var qiandian = '<input class="inp nob" type="button" value="1" onclick="nextOperlogPageToForm(1)">';
qiandian += '<input class="inp dian mr" type="button" value="..."> ';
formName.append(qiandian);
}
//页码
for (var i = startpage; i <= endpage; i++) {
var wtpage = null;
if (i == operlogCurpage) {
wtpage = '<input class="inp nob active" type="button" value="' + i + '" onclick="nextOperlogPageToForm(' + i + ')">';
} else {
wtpage = '<input class="inp nob" type="button" value="' + i + '" onclick="nextOperlogPageToForm(' + i + ')">';
}
$(wtpage).appendTo(formName);
}
//后省略
if (back < operlogTotalPage && operlogTotalPage > 5) {
var houdian = '<input class="inp dian mr" type="button" value="..."> ';
houdian += '<input class="inp nob" type="button" value="' + operlogTotalPage + '" id="oper_total" onclick="nextOperlogPageToForm(1)">';
formName.append(houdian);
}
//下一页
if (nextpage <= operlogTotalPage) {
var nextcontent = '<input class="inp pages" id="oper_next" type="button" value="下一页" onclick="nextOperlogPageToForm(' + nextpage + ')" >';
$(nextcontent).appendTo(formName);
}
//跳转页码
var pageNum1 = '  第  <input class="inp nob inner" type="text" id="operlog-input" value="' + operlogCurpage + '" >  页  ';
formName.append(pageNum1);
var pageNum2 = '<a href="javascript:jumpOperlog();" class="color6">跳转</a>';
formName.append(pageNum2); }

  3、JSP页面调用方法:

 var curPageNum=1;
getOperlogPage('${operLogPage.pageNo}','${operLogPage.totalPage}',$(".operlogForm"));

  4、ajax分页:

 //上一页/下一页 首页/尾页 适用于带form参数
function nextOperlogPageToForm(pageNo){
if( $(document).find(".operlogForm").length > 0){ $("<input id='pageNo' name='pageNo' type='hidden' value=\""+pageNo+"\">").appendTo(".operlogForm");
$.ajax({
type: "POST",
url: "${ctx}/admin/userManage/getOperLogPagination",
data: {
id:${model.id},
pageNo:pageNo
},
success:function(data){
$("#sample-table-1 tr:not(:first)").html("");
var operLogVo = data.list;
for(var i = 0;i<operLogVo.length;i++){
$("#operLog-tbody").append(" "
+" <tr>"
+"<td>"+(i+1)+"</td>"
+"<td>"+(operLogVo[i].operater)+"</td>"
+"<td>"+(operLogVo[i].updateTime)+"</td>"
+"<td>"+(operLogVo[i].remark)+"</td>"
+"<td>"+(operLogVo[i].operName)+"</td>"
+"<td>"+(operLogVo[i].result)+"</td>"
);
} }
});
$(".operlogForm").empty();
getOperlogPage(pageNo,'${operLogPage.totalPage}',$(".operlogForm"));
/* $(".operlogForm").find('.nob').removeClass('active');
$(".operlogForm").find('input[value="'+pageNo+'"]').addClass('active');*/
}
}

  5、效果与前者一样,还是给大家看看图片

项目开发之分页---异步分页(ajax)的更多相关文章

  1. 项目:《ssh框架综合项目开发视频》-视频目录和第六天的EasyUI简单讲解

    4 练习使用技术: Struts2 + hibernate5.x + spring4.x + mysql数据库 1 crm:customer relational manager,客户关系管理 2 c ...

  2. 5.Hibernate实现全套增删改查和ajax异步分页

    1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...

  3. jQuery+Ajax+PHP实现异步分页数据显示

    这几天做毕业设计的时候需要使用到一个异步分页的功能,即翻页的时候只是刷新分页的数据而不是刷新整个页面.因为之前做项目的时候没有做过这方面的功能,所以还是纠结了挺长时间的,在网上也找了很多资料,结合自己 ...

  4. 向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)[上拉加载组件]

    /**** desc : 分页异步获取列表数据,页面向上滚动时候加载前面页码,向下滚动时加载后面页码 ajaxdata_url ajax异步的URL 如data.php page_val_name a ...

  5. 利用Linq + Jquery + Ajax 异步分页的实现

    在Web显示的时候我们经常会遇到分页显示,而网上的分页方法甚多,但都太过于消耗带宽,所以我想到了用Ajax来分页,利用返回的Json来处理返回的数据, 大大简化了带宽的压力. 先说下思路,无非就是异步 ...

  6. SPA项目开发之动态树+数据表格+分页

    SPA项目开发之动态树+数据表格+分页 动态生成NavMenu导航菜单(只支持2级菜单) <el-menu key="" index=""> < ...

  7. SPA项目开发动态树、数据表格、分页功能

    SPA项目开发 1.修改左侧动态树 LeftNav.vue <template> <el-menu router :" class="el-menu-vertic ...

  8. Java项目开发中实现分页的三种方式一篇包会

    前言   Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用 ...

  9. Spring+Mybatis+jQuery.Pagination.js异步分页及JsonConfig的使用

    在开发工作中经常用到异步分页,这里简单整理一下资料. 一.Controller方法 package com.lwj.controller; import javax.servlet.http.Http ...

随机推荐

  1. C#正则学习

    正则的力量无法小觑,短短的几个字符,往往胜过几十行的代码,大大可以简化我们冗余的代码. 以前在js里用正则比较多,今天来熟悉下C#中正则的使用方法,权当笔记了! 如果把正则当做一门语言的话,那么正则的 ...

  2. 面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式

    什么是面向对象?面向对象是一种思想!(废话). 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下 ...

  3. selenium2入门 用selenium安装、加载、启用插件(一)

    一:下载 下载地址是:http://docs.seleniumhq.org/download/

  4. Android Studio如何设置自己主动提示代码

    同Eclipse时间,您可以设置,无论你是设置输入不管什么信,可以提示码,在Android Studio也可以 设置.并且比Eclipse设置来的简单. 当然假设你认为代码自己主动提示会减少你的代码水 ...

  5. shell awk统计重复个数

    awk是一个很强大的工具,一个常见的用法就是统计一个文件中重复的列值的个数,这也是面试时面试官经常问的一个问题. 举个例子: 有个文件file.log的内容如下: http://www.sohu.co ...

  6. Windows环境搭建Web自动化测试框架Watir

    Windows环境搭建Web自动化测试框架Watir 一.前言     Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...

  7. 苹果公司的新的编程语言 Swift 高级语言(十五)--协议

    协议定义了适合某个特定任务或功能须要的方法.属性和其他需求的一个蓝图.协议本身不提供这些需求的实现,它仅仅是描写叙述了一个任务或功能实现的蓝图. 协议与java 语言中的接口定义类似,都是描写叙述了一 ...

  8. SSMS2008插件开发(3)--部署调试SSMS2008插件

    原文:SSMS2008插件开发(3)--部署调试SSMS2008插件 上一次说到VS2008中的插件开发,最终结果插件是部署在VS2008中,现在我们将插件部署到SSMS2008(Microsoft ...

  9. 一道sql面试题(查询语句)

    一道sql面试题(查询语句)   id name age 1  a        11 2  b        11 3  c        12 4  d        13 5  e        ...

  10. iTextSharp生成pdf文档案例

    1.using iTextSharp.text;using iTextSharp.text.pdf; 2.设置页面大小 iTextSharp.text.Rectangle pageSize = new ...