CRUD(19):查询-显示分页细节

一、页面首先展示第一页。


             $(function() {



                    to_page(1);



             });  



二、带页码发送ajax请求。


             function to_page(pn) {



                    $.ajax({



                           url : "${APP_PATH}/emps",



                           data : "pn=" + pn,



                           type : "GET",



                           success : function(result) {



                                 //console.log(result);



                                 //1.解析并显示员工数据



                                 build_emps_table(result);



                                 //2.解析并显示分页信息



                                 build_page_info(result);



                                 //3.解析并显示分页条



                                 build_page_nav(result);



                           }



                    });



             }



三、每次发送ajax请求之前,先清空区域里已有的数据,防止数据重复显示;

如:


$("#emps_table tbody").empty();



四、页码按钮选中变蓝。


                           //页码按钮选中变蓝



                           if (result.extend.pageInfo.pageNum == item) {



                                 numLi.addClass("active");



                           }



五、为页码按钮添加点击事件。

如:


                           numLi.click(function() {



                                 to_page(item);



                           });





六、首页和末页设置为相应的页码数。

七、前一页与后一页的逻辑:如果不存在前一页,则禁用前一页按钮;否则,如果存在前一页,则将页码减小一个数。后一页逻辑同上。


                    if (result.extend.pageInfo.hasPreviousPage == false) {



                           prePageLi.addClass("disabled");



                    } else {



                           prePageLi.click(function() {



                                 to_page(result.extend.pageInfo.pageNum - 1);



                           });



                    }



八、分页合理化:

官方文档中的解释

reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

所以需要在mybatis-config.xml中添加:


       <plugins>



             <plugin interceptor="com.github.pagehelper.PageInterceptor">



                    <!-- 调整分页合理化 -->



                    <property name="reasonable" value="true" />



             </plugin>



       </plugins>



九、源代码


<%@ page language="java" contentType="text/html; charset=UTF-8"



       pageEncoding="UTF-8"%>



<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>



<!DOCTYPE html>



<html>



<head>



<meta charset="UTF-8">



<title>员工列表</title>



<!-- 拿到当前项目路径,以/开始,不以/结束 -->



<%



       pageContext.setAttribute("APP_PATH", request.getContextPath());



%>







<!-- 引入jquery -->



<script type="text/javascript"



       src="${APP_PATH }/static/js/jquery-1.12.4.min.js"></script>



<!-- 引入Bootstrap样式 -->



<link



       href="${APP_PATH }/static/bootstrap-3.3.7-dist/css/bootstrap.min.css"



       rel="stylesheet">



<script



       src="${APP_PATH 

}/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>



</head>



<body>



       <!-- 搭建显示页面 -->







       <div class="container">







             <!-- 标题 -->



             <div class="row">



                    <div class="col-md-12">



                           <h1>SSM-CRUD</h1>



                    </div>



             </div>







             <!-- 按钮 -->



             <div class="row">



                    <div class="col-md-4 col-md-offset-8">



                           <button class="btn btn-primary">新增</button>



                           <button class="btn btn-danger">删除</button>



                    </div>



             </div>







             <!-- 显示表格数据 -->



             <div class="row">



                    <div class="col-md-12">



                           <table class="table table-hover" id="emps_table">



                                 <thead>



                                        <tr>



                                               <th>#</th>



                                               <th>empName</th>



                                               <th>gender</th>



                                               <th>email</th>



                                               <th>deptName</th>



                                               <th>操作</th>



                                        </tr>



                                 </thead>



                                 <tbody></tbody>



                           </table>



                    </div>



             </div>







             <!-- 显示分页 -->



             <div class="row">



                    <!-- 分页文字信息 -->



                    <div class="col-md-6" id="page_info_area"></div>



                    <!-- 分页条信息 -->



                    <div class="col-md-6" id="page_nav_area"></div>



             </div>



       </div>







       <script type="text/javascript">



       <!--页面加载完成以后直接发送一个ajax请求,拿到分页数据-->



             $(function() {



                    to_page(1);



             });



             



             function to_page(pn) {



                    $.ajax({



                           url : "${APP_PATH}/emps",



                           data : "pn=" + pn,



                           type : "GET",



                           success : function(result) {



                                 //console.log(result);



                                 //1.解析并显示员工数据



                                 build_emps_table(result);



                                 //2.解析并显示分页信息



                                 build_page_info(result);



                                 //3.解析并显示分页条



                                 build_page_nav(result);



                           }



                    });



             }







             //解析显示员工数据



             function build_emps_table(result) {



                    



                    //首先清空原来的emps_table tbody



                    $("#emps_table tbody").empty();



                    



                    var emps = result.extend.pageInfo.list;



                    $.each(emps, function(index, item) {







                           var empIdTd = $("<td></td>").append(item.empId);



                           var empNameTd = $("<td></td>").append(item.empName);



                           var genderTd = $("<td></td>").append(



                                        item.gender == 'm' ? "男" : "女");



                           var emailTd = $("<td></td>").append(item.email);



                           var deptNameTd = $("<td></td>")



                                        .append(item.department.deptName);







                           var editBtn = $("<button></button>").addClass(



                                        "btn btn-info btn-sm").append(



                                        $("<span></span>").addClass(



                                                     "glyphicon 

glyphicon-pencil")).append("编辑");



                           var delBtn = $("<button></button>").addClass(



                                        "btn btn-danger btn-sm").append(



                                        $("<span></span>")



                                                     .addClass("glyphicon 

glyphicon-trash")).append(



                                        "删除");



                           var btnTd = $("<td></td>").append(editBtn).append(" 

").append(



                                        delBtn);







                           //append方法执行完成以后还是返回原来的元素



                           $("<tr></tr>").append(empIdTd).append(empNameTd).append(



                                        genderTd).append(emailTd).append(deptNameTd).append(



                                        btnTd).appendTo("#emps_table tbody");



                    });



             }







             //显示分页信息



             function build_page_info(result) {



                    //首先清空原来的



                    $("#page_info_area").empty();



                    $("#page_info_area").append(



                                 "当前第" + result.extend.pageInfo.pageNum + "页 

共"



                                               + result.extend.pageInfo.pages + 

"页 共"



                                               + result.extend.pageInfo.total + 

"条记录");







             }



             



             //显示分页条  



             function build_page_nav(result) {



                    //首先清空原来的



                    $("#page_nav_area").empty();



                    var ul = $("<ul></ul>").addClass("pagination");



                    var firstPageLi = 

$("<li></li>").append($("<a></a>").append("首页"))



                                 .attr("href", "#");







                    var prePageLi = $("<li></li>").append(



                                 $("<a></a>").append("&laquo;"));







                    if (result.extend.pageInfo.hasPreviousPage == false) {



                           prePageLi.addClass("disabled");



                    } else {



                           prePageLi.click(function() {



                                 to_page(result.extend.pageInfo.pageNum - 1);



                           });



                    }



                    var nextPageLi = $("<li></li>").append(



                                 $("<a></a>").append("&raquo;"));







                    if (result.extend.pageInfo.hasNextPage == false) {



                           nextPageLi.addClass("disabled");



                    } else {



                           nextPageLi.click(function() {



                                 to_page(result.extend.pageInfo.pageNum + 1);



                           });



                    }



                    var lastPageLi = 

$("<li></li>").append($("<a></a>").append("末页"))



                                 .attr("href", "#");







                    firstPageLi.click(function() {



                           to_page("1");



                    });



                    lastPageLi.click(function() {



                           to_page(result.extend.pageInfo.pages);



                    });







                    //添加首页和前一页的显示



                    ul.append(firstPageLi).append(prePageLi);



                    $.each(result.extend.pageInfo.navigatepageNums, 

function(index,



                                 item) {



                           var numLi = 

$("<li></li>").append($("<a></a>").append(item));



                           //页码按钮选中变蓝



                           if (result.extend.pageInfo.pageNum == item) {



                                 numLi.addClass("active");



                           }



                           numLi.click(function() {



                                 to_page(item);



                           });



                           //添加页码显示



                           ul.append(numLi);



                    });



                    //添加下一页和末页的显示



                    ul.append(nextPageLi).append(lastPageLi);







                    var navEle = $("<nav></nav>").append(ul);



                    navEle.appendTo("#page_nav_area");







             }



       </script>



</body>



</html>





posted on 2021-02-16 00:09  northwest  阅读(92)  评论(0)    收藏  举报

导航