不修改sql语句,通过layui框架实现分页

主要是查询sql已经写好了很多类,不想修改,所以使用layui框架直接在前端实现分页

//显示数据列表

<ul id="asd">

</ul>

//分页按钮
<div id="laypage"></div>

<script type="text/javascript">
        $(function () {
            showData()  //请求数据
            showPage()     //分页操作
        });

        let pageNum = 1; //设置首页页码
        let pageSize = 5;  //设置一页显示的条数
        let total;    //总条数
        let  pages; //一共多少页

        function showData() {
            $.ajax({
                type: "get",
                url: "/aa/list",//对应controller的URL
                async: false,
                dataType: 'json',
                data: {
                    "pageNum": pageNum,
                    "pageSize": pageSize,
                },
                success: function (res) {//返回查询结果,我返回的是map集合
                    total = res.data.news.length;  //设置总条数
                    pages = res.data.news.length/5; //设置总页数,初始每页显示5条
                    console.log(res);
                    let fin= res.data.news;//我返回的是map集合,根据需求变化
                    $("[id=asd]").empty()//换页清空
                    for (let i = (pageNum-1)*pageSize; i < pageNum*pageSize; i++) {//换页之后数据显示
                        if (i < total) {
                            $("<li><a href='/details?no=1&id=" + fin[i]?.id + "'>" + fin[i]?.title + "</a><span>" + fin[i]?.createTime + "</span></li>").appendTo("[id=asd]")
                        }
                    }

                }
            });
        }
        function showPage() {
            layui.use('laypage', function () {
                let laypage = layui.laypage;
                //执行一个laypage实例
                laypage.render({
                    elem: 'laypage',  //注意laypage是 ID,不用加 # 号
                    count: total, //数据总数,从服务端得到
                    limit: pageSize,   //每页条数设置
                    limits: [5, 10, 20, 30],            //可选每页显示条数
                    curr: 1,                      //起始页
                    groups: 3,                     //连续页码个数
                    prev: '上一页',               //上一页文本
                    next: '下一页',                //下一页文本
                    first: 1,                    //首页文本
                    last: pages,                   //尾页文本
                    layout: ['prev', 'page', 'next', 'limit', 'refresh', 'skip'],
                    jump: function (obj, first) {  //触发分页后的回调
                        //obj包含了当前分页的所有参数,第一次加载first为true
                        console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
                        console.log(obj.limit); //得到每页显示的条数
                        pageNum = obj.curr;  //改变当前页码
                        pageSize = obj.limit;
                        //首次不执行,一定要加此判断,否则初始时会无限刷新
                        if (!first) {
                            showData()  //加载数据
                        }
                    }
                });
            });
        }
    </script>

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值