总体思路:

    1.前台查询的时候将当前页和页大小传到后台

    2.后台将当前页,页大小以及数据与数据总数返回前台,前台显示完表格完数据之后显示分页插件。

前台页面:

  准备查询条件的表单,与数据表格,分页div       (同时需要在查询条件表单中准备隐藏当前页与页大小的文本框)

 <div class="layui-row">
<%--查询条件的form--%>
<form class="layui-form layui-col-md12 x-so" id="queryTrainschemeForm">
<%--隐藏当前页和页号--%>
<input type="hidden" name="pageNum">
<input type="hidden" name="pageSize"> <input type="text" name="trainingschemaname" placeholder="培养方案名称" autocomplete="off" class="layui-input">
<input type="text" name="majorname" class="layui-input" placeholder="专业名称" autocomplete="off">
<input type="text" name="majorid" class="layui-input" placeholder="专业代码" autocomplete="off">
<div class="layui-input-inline">
<select name="remark1">
<option value="">编辑状态</option>
<option value="保存">保存</option>
<option value="已提交">已提交</option>
</select>
</div>
<%-- <div class="layui-input-inline">
<select name="contrller">
<option>是否使用</option>
<option>是</option>
<option>否</option>
</select>
</div>--%>
<button class="layui-btn" type="button" onclick="queryTrainSchemeFYBtn()"><i class="layui-icon"></i></button>
<button class="layui-btn layui-btn-normal" type="button" onclick='clearQueryCondition(this)' title="点击重置查询条件"><i class="layui-icon"></i></button>
</form>
</div> <!--操作区域-->
<xblock>
<button class="layui-btn" onclick="x_admin_show('课程安排','./trainingScheme-course.html')">上传课程结构图</button>
<button class="layui-btn" onclick="x_admin_show('课程安排','./trainingScheme-course.html')">安排课程</button>
<button class="layui-btn" onclick="x_admin_show('课程安排','./trainingScheme-course.html')">安排课程能力</button>
<button class="layui-btn layui-btn-normal" onclick="">下载培养方案 </button>
</xblock>
<!--end 操作区域--> <!--表格内容-->
<table class="layui-table">
<thead>
<tr>
<th></th>
<th>序号</th>
<th>培养方案名称</th>
<th>专业名称</th>
<th>专业代码</th>
<th>学科门类</th>
<th>专业负责人</th>
<th>修业年限</th>
<th>修订人</th>
<th>修订时间</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody id="trainSchemeTbody">
<!--动态填充数据-->
</tbody>
</table>
<!--end 表格内容--> <!--分页-->
<div id="pageDiv"></div>
<!--end 分页-->

效果:

JS:(重点)

  解释:点击查询的时候将页号清空(这个有时候容易忘),带着组合条件去后台查询,查询成功后将数据填充到表格之后显示分页组件。点击分页组件的页号与上下页的时候动态设置页面中隐藏域的值,同时调用查询方法。

  点击清空条件按钮的时候清空所有的查询条件,同时清空页面隐藏的条件,并进行查询。

/*****S 分页查询相关方法**********/
function queryTrainSchemeFY(){
$.ajax({
url:contextPath+"/TrainScheme/getTrainSchemeFY.do",
data:$("#queryTrainschemeForm").serialize(),
dataType:'json',
type:'post',
async:true,
success:showTrainSchemeTable
});
} /**
* 填充表格数据
* @param pageInfo ajax返回的参数信息
*/
function showTrainSchemeTable(pageInfo){
// alert(JSON.stringify(pageInfo))
var total = pageInfo.total;//页总数
var pageNum = pageInfo.pageNum;//页号
var pageSize = pageInfo.pageSize;//页大小 var trainschemes = pageInfo.list;
$("#trainSchemeTbody").html("");//清空表格中数据并重新填充数据
for(var i=0,length_1 = trainschemes.length;i<length_1;i++){
var index = (pageNum - 1) * pageSize + i + 1;
var tr = "<tr><td>"+'<input type="radio" name="trainshemeRadio" value="'+trainschemes[i].trainingSchemeID+'"><input type="hidden" value="'+trainschemes[i].trainingSchemeID+'"/></td>'
+'<td>'+index+'</td>'
+'<td>'+replaceNull(trainschemes[i].trainingSchemaName)+'</td>'
+'<td>'+replaceNull(trainschemes[i].majorName)+'</td>'
+'<td>'+replaceNull(trainschemes[i].majorID)+'</td>'
+'<td>'+replaceNull(trainschemes[i].majorType)+'</td>'
+'<td>'+replaceNull(trainschemes[i].majorManager)+'</td>'
+'<td>'+replaceNull(trainschemes[i].trainYears)+'</td>'
+'<td>'+replaceNull(trainschemes[i].revisePerson)+'</td>'
+'<td>'+replaceNull(trainschemes[i].createTime)+'</td>'
+'<td>'+replaceNull(trainschemes[i].remark1)+'</td>'
+'<td>'
+'<a title="点击查看课程详细信息" onclick="openDetailLayer(this)" href=javascript:void(0)><i class="layui-icon"></i></a>'
+'<a href=javascript:void(0) title="点击修改课程基本信息" onclick="openUpdateLayer(this)"><i class="layui-icon"></i></a>'
+'<a href=javascript:void(0) title="点击删除课程" onclick="deleteCourseByCourseId(this)"><i class="layui-icon"></i></a>'
+'</td></tr>'
$("#trainSchemeTbody").append(tr);
} //开启分页组件
trainschemesPage(total,pageNum,pageSize);
} /**
* layui的分页插件
* @param total 总数
* @param pageNum 当前页
* @param pageSize 页大小
*/
function trainschemesPage(total,pageNum,pageSize){
//使用layui的分页插件
layui.use(['laypage', 'layer'], function(){
var laypage = layui.laypage,layer = layui.layer; //执行一个laypage实例
laypage.render({
elem: 'pageDiv', //注意,这里的 test1 是 ID,不用加 # 号
count: total, //数据总数,从服务端得到
limit:pageSize,//每页显示的条数。laypage将会借助 count 和 limit 计算出分页数。
curr:pageNum,//当前页号
limits:[6,10,15,20],
layout:['limit','prev', 'page', 'next','skip','count'],//显示哪些分页组件
jump: function(obj, first){//点击页号的时候执行的函数
//obj包含了当前分页的所有参数,比如:
// console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
// console.log(obj.limit); //得到每页显示的条数 $("[name='pageNum']").val(obj.curr);//向隐藏域设置当前页的值
$("[name='pageSize']").val(obj.limit);//向隐藏域设置当前页的大小
if(!first){//首次不执行(点击的时候才执行)
queryTrainSchemeFY();//执行查询分页函数(这个函数必须写在这里)
}
} });
});
} /**
* 点击查询放大镜的事件
*/
function queryTrainSchemeFYBtn() {
$("[name='pageNum']").val("");//清空页号
queryTrainSchemeFY();//分页查询课程信息
} /**
* 清空查询条件的按钮
* 1.清空所有的条件,包括隐藏域的条件,2.重新查询一次
* @param obj 将清空条件按钮自己传下来
*/
function clearQueryCondition(obj) {
//1.清空条件
var form = $(obj).parents("form");
form.find("input").val("");
form.find("select").val("");
//2.重新查询一次
queryTrainSchemeFY();
} /*****E 分页查询相关方法**********/

如果我们想要当数据不足6条的时候不显示分页可以在调用分页组件之前判断:

    if(total < 6){
return;
}
//开启分页组件
usersPage(total,pageNum,pageSize);

后台Java代码:(返回PageInfo)

    /**
* 分页查询培养方案基本信息
* @param condition 自动映射的查询条件
* @return 分页信息
*/
@RequestMapping("/getTrainSchemeFY")
public PageInfo<Map<String,Object>> getTrainschemeinfosFY(@RequestParam Map condition){
int pageNum = 1;
if(ValidateCheck.isNotNull((String) condition.get("pageNum"))){ //如果不为空的话改变当前页号
pageNum = Integer.parseInt((String) condition.get("pageNum"));
}
int pageSize = DefaultValue.PAGE_SIZE;
if(ValidateCheck.isNotNull((String) condition.get("pageSize"))){ //如果不为空的话改变当前页大小
pageSize = Integer.parseInt((String) condition.get("pageSize"));
}
//开始分页
PageHelper.startPage(pageNum,pageSize);
List<Map<String, Object>> trainschemeinfoByCondition = null;
try {
trainschemeinfoByCondition = trainschemeinfoService.getTrainschemeinfoByCondition(condition);
} catch (SQLException e) {
e.printStackTrace();
}
PageInfo<Map<String,Object>> pageInfo = new PageInfo<Map<String,Object>>(trainschemeinfoByCondition);
return pageInfo;
}

返回数据格式:

layui结合mybatis的pagehelper插件的分页通用的方法的更多相关文章

  1. springboot结合mybatis使用pageHelper插件进行分页查询

    1.pom相关依赖引入 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  2. SpringBoot整合mybatis使用pageHelper插件进行分页操作

    SpringBoot整合mybatis分页操作 SpringBoot整合Mybatis进行分页操作,这里需要使用Mybatis的分页插件:pageHelper, 关于pageHelper的介绍,请查看 ...

  3. Mybatis中使用PageHelper插件进行分页

    分页的场景比较常见,下面主要介绍一下使用PageHelper插件进行分页操作: 一.概述: PageHelper支持对mybatis进行分页操作,项目在github地址: https://github ...

  4. Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件

    上一篇文章,写了如何搭建一个简单的Spring boot项目,本篇是接着上一篇文章写得:Spring boot入门:快速搭建Spring boot项目(一),主要是spring boot集成mybat ...

  5. Spring + Mybatis 使用 PageHelper 插件分页

    原文:http://www.cnblogs.com/yucongblog/p/5330886.html 先增加maven依赖: <dependency> <groupId>co ...

  6. pageHelper插件+传统分页处理

    为什么要使用pageHelper:https://www.cnblogs.com/ljdblog/p/6725094.html 配置文件详解:https://www.cnblogs.com/cksvs ...

  7. 使用PageHelper插件分页结合mybatis返回的列表个数不对问题解决

    问题描述:spring mvc+mybatis项目中,当使用PageHelper插件进行分页查询时,查到的总数据量值是正确的,但是查询当前页返回的列表个数不对.比如每页查询10条,返回2条或者3条.r ...

  8. mybatis分页 -----PageHelper插件

    对查询结果进行分页 一,使用limit进行分页 1.mybatis 的sql语句: <if test="page !=null and rows !=null"> li ...

  9. 浅析MyBatis(三):聊一聊MyBatis的实用插件与自定义插件

    在前面的文章中,笔者详细介绍了 MyBatis 框架的底层框架与运行流程,并且在理解运行流程的基础上手写了一个自己的 MyBatis 框架.看完前两篇文章后,相信读者对 MyBatis 的偏底层原理和 ...

随机推荐

  1. 编写shell时,遇到let: not found错误及解决办法

    #!/bin/bashi=1sum=0while [ $i -le 100 ]do  let sum=sum+$i  let i++ done 在写一个简单的循环脚本时,报错 let: not fou ...

  2. lxs1314 is not in the sudoers file. This incident will be reported.

    虚拟机下面  普通用户用sudo执行命令时报"xxx is not in the sudoers file.This incident will be reported"错误,解决 ...

  3. 对Spark2.2.0文档的学习2-Job Scheduling

    Job Scheduling Link:http://spark.apache.org/docs/2.2.0/job-scheduling.html 概况: (1)集群中多个应用的调度主要考虑的是不同 ...

  4. list+map

    通常读取数据库表中的一条记录后,可以存储于Hashmap变量中:若要读取多条记录,则依次读取每个记录时,先用Hashmap变量存取,然后将Hashmap加到ArrayList变量中. 注意: 每次读取 ...

  5. (转)maven下载jar包速度慢(解决办法)

    本文转载至http://blog.csdn.net/ko289830707/article/details/53559052 现在maven项目非常流行,因为它对jar实行了一个非常方便的管理,我们可 ...

  6. poj2299——Ultra-QuickSort

    Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...

  7. hbase 安装笔记

    1.安装 在官方镜像站点下载hbase2.0,地址:https://www.apache.org/dyn/closer.lua/hbase/ 解压tar xzvf hbase-2.0.4-bin.ta ...

  8. 【转】Oracle 查询库中所有表名、字段名、表名说明、字段名说明

    转自 :http://gis-conquer.blog.sohu.com/170243422.html 查询所有表名:select t.table_name from user_tables t; 查 ...

  9. 【CF813E】Army Creation(主席树)

    [CF813E]Army Creation(主席树) 题面 CF 洛谷 翻译 by ppl 见洛谷 题解 考虑最多只会有\(K\)个相同的数 那么,也就是说,如果一个数会被选 那么,和它相等的数中,在 ...

  10. 利用script和scriptlet moniker绕过脚本白名单限制

    没事儿看了一下subtee和enigma0x3今年在BSides Nashville 2017上的演讲,觉得这两个猥琐男简直不能再猥琐了 :-)其中有一个猥琐小技巧,又可以让我们好好hunting一番 ...