layui分页组件layPage动态调整页数

今天来说一说,laypage如何动态调整页数。

首先,这是简单的分页组件的写法,这时候始终都只有一页。

layui.use(['laypage', 'layer'], function(){
    laypage = layui.laypage
    ,layer = layui.layer;
    laypage.render({
        elem: 'demo2'    //渲染的对象
        ,count: 1    //注意这里的count是数据条数
        ,limit: 8    //每页显示8条数据
        ,theme: '#1E9FFF'
    });
});

对其进行方法封装。

16是每页显示的个数,num是你要查询的表里面的总数据

function flushPage(num,curr){
    layui.use(['laypage', 'layer'], function(){
    laypage = layui.laypage
    ,layer = layui.layer;
    laypage.render({
        elem: 'demo2'    //渲染的对象
        ,count: num    //注意这里的count是数据条数
        ,limit: 16        //每页显示8条数据
        ,curr : curr    //当前高亮页
        ,theme: '#1E9FFF'
        ,jump: function (obj, first) { //obj为当前页的属性和方法,第一次加载first为true
            //do SomeThing
            if (!first) {    //非首次加载
                console.log(obj.curr);
                getSongByPage(obj.curr);    //执行跳页方法,刷新显示内容,然后再在跳页方法中调用该方法,来改变总页数
                //注意这里的总页数是,layui自己给我们算出来的,我们需要提供后台返回的总记录数,以及一页显示记录条数
            }
        }
        });
    });
}

页面刷新 与 从后端获取总记录数的方法

function getSongByPage(page) {
        if (page <= 0) {
            page = 1;
        }
        sql_page = (page - 1) * 16;
        $.ajax({
            url: "/look_poem_desty",
            type: "POST",
            data: {"desty": $("#desty_name").val(), "page": sql_page},
            dataType: "json",
            async: true,
            success: function (res) {
                text = "";
                total_sum = res[0].sum;
                //text渲染就不写了。。。。
                var songNum = total_sum;        //取出总记录数
                flushPage(songNum, page);
                $("#all_shici").html(text);
            },
            error: function (e) {
                alert("出现错误!!");
            }
        });
    }            

所有完毕后,就可以去写后端的mysql语句:

select * from tang limit page,16;

然后加载:即可实现分页

getSongByPage(1);

相信你看完就会了。。。。。

posted @ 2021-11-29 22:46  清风紫雪  阅读(1528)  评论(0编辑  收藏  举报