Layui列表分页功能前后台实现(傻瓜式教程)

Layui列表分页功能前后台实现
layui一直备受国内web开发者的喜欢。使用简单,样式也较为好看。本次说一下layui分页的实例,首先先引入layui,那是肯定的。
效果图:
在这里插入图片描述
引入一个maven依赖:
pagehelper这个插件很方便,让我们写分页sql时只写查询就行。自动封装分页的一些sql,如:自动增加imit,自动count总数等。

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
        </dependency>

前端页面:
很简单,写一个table标签就行.
需要注意的是:我在script标签中加入了th:inline=“none”,这里说明一下,由于我的项目是SpringBoot项目,用的模板引擎是thymeleaf所以加上th:inline=“none” 就代表此区域不使用thymeleaf表达式。因为[[]]符号会冲突。没有使用的不用添加,会报错。

<table id="dates" lay-filter="test"></table>

<script type="text/javascript" th:inline="none">
    layui.use('table', function(){
    var table = layui.table;
                table.render({
            elem: '#dates'
            ,url:'/admin/selectusertable'
            ,limit:5 //默认为10
            ,cols: [[
                {field:'id', width:50, title: '编号', sort: true} //sort:true页面可进行排序操作
                ,{field:'username',  title: '用户名'}
                ,{field:'email',width:170,  title: '邮箱', sort: true}
                ,{field:'password',width:170,  title: '密码'}
                ,{field:'birthder',width:170,  title: '注册时间'}
                ,{field:'level',width:100,  title: '等级',templet: function(d){
                    var str = '';
                    if(d.level==1){str='普通用户';}
                    else if(d.level==2){str='管理员';}
                        return str;
                    }
                    }
                ,{field:'level',width:100,  title: '操作',templet: function(d){
                        return '<a class="layui-btn layui-btn-xs layui-btn-danger" οnclick="dele('+d.id+');">删除</a>';
                    }
                }
            ]]
            ,page: true
            ,done:function(res, curr, count){
                //数据的回调用,可不写
            }
        });
    });
</script>

接下来时Controller实现:

        //获取用户信息列表
    @RequestMapping(value = "/selectusertable2")
    @ResponseBody
    public Map<String,Object>selectByFy12(HttpSession session, @RequestParam(required=false,defaultValue="1") int page,
                                          @RequestParam(required=false) int limit) {
        // 使用Pagehelper传入当前页数和页面显示条数会自动为我们的select语句加上limit查询
        // 从他的下一条sql开始分页
        PageHelper.startPage(page, limit);
        List<User> users  = userService.getuserlist();// 这是我们的sql
            // 使用pageInfo包装查询
        PageInfo<User> rolePageInfo = new PageInfo<>(users);//
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("code",0);
        map.put("msg","");
        map.put("count",rolePageInfo.getTotal());
        map.put("data",rolePageInfo.getList());
        return map;
    }

SQL语句:
什么都不用加,直接写查询就行,插件会自动帮你做limit或者count

 SELECT * FROM user order by birthder desc
以下是一个使用 layui 实现自定义分页的例子: HTML 代码: ```html <div class="layui-table-page"> <div class="layui-box layui-laypage layui-laypage-default"> <a class="layui-laypage-prev layui-disabled" href="javascript:;" data-page="0">上一页</a> <span class="layui-laypage-curr"><em class="layui-laypage-em"></em>1</span> <a class="layui-laypage-next" href="javascript:;" data-page="2">下一页</a> <span class="layui-laypage-skip">到第<input type="text" min="1" value="1" class="layui-input">页<button class="layui-laypage-btn">确定</button></span> <span class="layui-laypage-total">共 100 条</span> </div> </div> ``` JavaScript 代码: ```javascript layui.use(['layer', 'laypage'], function(){ var layer = layui.layer; var laypage = layui.laypage; laypage.render({ elem: '.layui-table-page', count: 100, limit: 10, prev: '<a class="layui-laypage-prev" href="javascript:;" data-page="{{prev}}">上一页</a>', next: '<a class="layui-laypage-next" href="javascript:;" data-page="{{next}}">下一页</a>', layout: ['prev', 'page', 'next', 'skip', 'total'], jump: function(obj, first){ if(!first){ // 在这里编写分页的 AJAX 请求代码 layer.msg('第 '+ obj.curr +' 页'); } } }); }); ``` 在上面的例子中,我们首先定义了一个包含分页元素的 HTML 结构,并在 JavaScript 中使用 layui.laypage.render() 方法进行分页的渲染。 其中,我们可以通过设置 `count` 属性来指定总条目数,通过设置 `limit` 属性来指定每页显示的条目数,通过设置 `prev` 和 `next` 属性来指定上一页和下一页的 HTML 元素,通过设置 `layout` 属性来指定分页布局,通过设置 `jump` 属性来指定分页跳转时的回调函数。 在 `jump` 回调函数中,我们可以编写分页的 AJAX 请求代码,并使用 `layer.msg()` 方法来提示当页码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值