实现Ajax异步的layui分页

我们常用layui做前端的很多东西,比如分页的实现,但是一般都是同步的,这次遇见一个新的需求,要求异步加载数据并且分页也是异步的,解决思路是在先把异步加载数据方法分离用自定义函数出来,先调用自定的方法异步加载数据完成后再进行分页,然后在分页里再次调用加载数据方法。。

页面效果图

页面代码

-

        <div class="rctj-box ${(detailflg==‘detailflg‘)?‘‘:‘layui-hide‘} ">
            <div style="margin-top: 25px">人才推荐</div>
            <div class="rctj"  style="margin-top: 10px;padding: 20px;background-color: #F2F2F2;" >
                 <table class="layui-table">
                      <colgroup>
                        <col width="150">
                        <col width="200">
                        <col>
                      </colgroup>
                      <thead>
                        <tr id="rckth">
                          <th style="text-align:center">姓名</th>
                          <th style="text-align:center">学历</th>
                          <th style="text-align:center">技能</th>
                          <th style="text-align:center">经验</th>
                          <th style="text-align:center">住址</th>
                          <th style="text-align:center">联系方式</th>
                        </tr>
                      </thead>
                      <tbody id="rcktb">
                       <%--  <tr>
                          <td> </td>
                          <td>${res}</td>
                          <td>${data}</td>
                          <td>于千万年之中</td>
                          <td>时间的无涯的荒野里…</td>
                          <td>时间的无涯的荒野里…</td>
                        </tr> --%>
                      </tbody>
                    </table>
             </div>
                    <div id="pagefenye" class="fenye" style="text-align:center;"></div>
         </div>  

js代码

-

//加载完成
$(function(){
                  var sherchkey=‘${positioninfo.name}‘;
                  savePosition();//保存修改方法
                  getPeopleList(1,5,sherchkey);//获取人才列表
                 // getPageList(); //分页方法
       });

//自己封装获取数据方法
function getPeopleList(crr,lmt,searchKey){
                //获取人才列表
                 $.ajax({
                          url:‘${ctx}/recruit/peoplelist‘,
                          type:‘post‘,
                          data:{
                                 "curr":crr||1,
                                 "pageSize":lmt||5,
                                 "searchKey":searchKey
                               },
                          dataType:‘json‘,
                          success:function(res){
                              if(res.success=="success"){
                                  console.log(res);
                                  count=res.data.totalElements;//总记录
                                  curr=res.data.number; //当前页
                                  limit=res.data.size; //每页几个
                                  var rclist=res.data.content;
                                  var html=‘‘;
                                  var len=rclist.length;

                                  for (var i=0; i<len; i++){
                                      var htmlbuf=‘<tr>‘+
                                         ‘<td style="text-align:center">‘+rclist[i].name+‘</td>‘+
                                         ‘<td style="text-align:center">‘+rclist[i].edu+‘</td>‘+
                                         ‘<td style="text-align:center">‘+rclist[i].skill+‘</td>‘+
                                         ‘<td style="text-align:center">‘+rclist[i].exp+‘</td>‘+
                                         ‘<td style="text-align:center">‘+rclist[i].add+‘</td>‘+
                                         ‘<td style="text-align:center">‘+rclist[i].tel+‘</td>‘+
                                         ‘</tr>‘;
                                       html=html+htmlbuf;
                                  }
                                  $("#rcktb").html(html);
                                  //调用分页方法
                                  getPageList(count,curr,limit,searchKey);

                              }else {
                                  layer.alert(res.message);
                              }
                          },
                          error:function(){
                              layer.msg("网络故障");
                          }
                      })
}

//自己封装分页方法
function getPageList(count,curr,limit,searchKey){
               //分页方法
                layui.use([‘laypage‘, ‘layer‘], function(){
                  var laypage = layui.laypage
                  ,layer = layui.layer;
                  //完整功能
                  laypage.render({
                    elem: ‘pagefenye‘,
                    count: count||0,
                    theme: ‘#009587‘,
                    limit : limit||3,
                    limits:[5, 10, 20, 30, 40],
                    curr : curr||1,
                    layout: [‘count‘, ‘prev‘, ‘page‘, ‘next‘,  ‘refresh‘, ‘skip‘],
                    jump: function(obj,first){
                    //debugger;
                        if(!first){
                            //window.location.href = "?curr="+obj.curr+"&pageSize="+obj.limit+"&enterId="+‘${enterId}‘;
                            getPeopleList (obj.curr,obj.limit,searchKey);
                        }
                    }
                  });
                });
}

后台代码

-

/**
     * 人才列表
     * @param curr
     * @param pageSize
     * @param searchKey
     * @param enterId
     * @param model
     * @return
     */
    @RequestMapping("/peoplelist")
    @ResponseBody
    public ResultEntity peopleList(@RequestParam(value = "curr", defaultValue = "1") int curr,
            @RequestParam(value = "pageSize", defaultValue = "5") int pageSize,String searchKey,Model model){

        ResultEntity res = new ResultEntity();
        try {
            PageUtils pageUtils = new PageUtils(curr, pageSize, "", "");
            Page<List<Map<String, Object>>> list = recruitService.getPeopleList(searchKey, pageUtils);
            List<Map<String, Object>> dataList = (List<Map<String, Object>>) list.getData();
            PageVo pageVo = new PageVo(list.getCurrentPageNo() - 1, dataList, pageSize, list.getTotalPageCount(),
                    list.getTotalCount());
            pageVo.setNumber(curr);
            res.setData(pageVo);
            //res.setData(curr);
            //res.setData(enterId);
            res.setSuccess("success");
            res.setMessage("获取成功");
        } catch (Exception e) {
            e.printStackTrace();
            res.setSuccess("false");
            res.setMessage("获取失败");
        }
        return res;

    }

原文地址:https://www.cnblogs.com/gwzzayy/p/9450934.html

时间: 2024-10-26 09:46:00

实现Ajax异步的layui分页的相关文章

LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页

LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年8月1日 http://www.cnblogs.com/fanshuyao/ 效果图: 一.引用js依赖

基于Jquery+Ajax+Json+高效分页

首先我们创建一般处理程序,来读取数据库中内容,得到返回值. 创建文件,GetData.ashx. 我这里是用的存储过程,存储过程会再下面粘出来,至于数据只是实例,你们可根据需求自行读取数据 代码如下: <%@ WebHandler Language="C#" Class="GetData"%> using System;using System.Web;using System.Data.SqlClient;using System.Data;using

PHP+jQuery 实现可选择url和ajax方式的分页类

1 /* 2 ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.min.js + Smarty 3.1.18 ******* 3 ******* Date:2014-10-11 4 ******* Author:小dee5 ******* Blog:http://www.cnblogs.com/dee0912/6 */ 做了一个分页的功能模块,主要的文件包括

php +ajax +sql 实现分页

上一章:php +ajax +sql 实现数据交互 上一章,讲解了php +ajax +sql实现数据异步加载,现在我们来了解下讲的的分页,这里我们用ajax来实现分页效果 注意:这里的代码大部分和上一章相似,不同的地方我会用这样的来显示 1.首先新建个sql表,表内容如上所示: 2.新建个公用文件conn.php来链接数据库: <?php header("Content-Type:text/html;charset=utf8");//申明编码格式 $conn=mysql_con

Ajax无刷新分页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc

关于layui分页

1.封装通用layUI分页table绑定 2.Mapper里的方法 3.Mapper.xml 里的处理 <!-- 查询所有信息 --> <resultMap type="cn.itcast.ssm.po.CompanyCustom" id="selectA" autoMapping="true"> <id column="cids" property="cids" />

JS 关于AJAX异步的说明

一个异步说明的文章与方法 AJAX可以同时使用? 同步 & 异步 参考网址? ?AJAX可以同时使用? 同步 & 异步 https://blog-en.openalfa.com/how-to-read-synchronously-json-files-with-jquery 原文:大专栏  JS 关于AJAX异步的说明 原文地址:https://www.cnblogs.com/petewell/p/11526728.html

Springmvc+Myabtis+Ajax实现异步分页emp+dept(全部查询及模糊查询)

1.在项目中创建如下目录 2.创建实体类Dept package com.entity; import java.io.Serializable; /** * 部门表 * @author Administrator * */ public class Dept implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Integer deptno; private Stri

浅谈Ajax 异步的几点细节

1.浏览器执行到Ajax代码的这行语句的时候,发出了一个HTTP请求,欲想请求服务器上的数据.服务器此时开始I/O,所谓的I/O就是磁盘的读写,需要花费一些时间,所以不会立即产生下行的HTTP报文: 2. 由于Ajax是异步的,所以本地的JavaScript程序不会停止运行,页面就不会死等,(不会傻等HTTP报文的反馈)后面javascript语句将继续执行.进程不会阻塞: 3. 等服务器的I/O结束,将下行HTTP报文发送到本地.此时,回调函数执行(将使用DOM更改页面内容).