layui表格配合自定义分页组件的使用

最近的项目中使用了layui组件,整体用起来还是不错的,这里记录一下表格组件配合分页组件的使用。layui的表格组件还是挺好用的,有自带的分页功能,在数据量小的情况下还是够用的,但是数据量稍微多一点就会显得很卡。所以还是得做分页查询,下面就讲一下使用步骤。

  1. layui的分页组件没办法主动刷新总数,但是总数在操作的时候很可能会是动态的,这里需要先定义一个函数,每次都会重新渲染分页组件所以可以刷新总数
function flushPage(num, curr, limit) {
    layui.use(['laypage', 'form', 'layer', 'table'], function () {
        var form = layui.form;
        var table = layui.table;
        laypage = layui.laypage
            , layer = layui.layer;
        laypage.render({
            elem: 'demo-laypage-all'	//渲染的对象
            , count: num		//注意这里的count是数据条数
            , limit: limit//分页数
            , limits: [10, 25, 50, 100]		//每页显示8条数据
            , layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] // 功能布局
            , curr: curr	//当前高亮页
            , jump: function (obj, first) { //obj为当前页的属性和方法,第一次加载first为true
                //do SomeThing
                if (!first) {	//非首次加载
                    // console.log(obj.curr);
                    var data = form.val('operationLog-filter');
                    operationLogqueryObj.pageNum = obj.curr
                    operationLogqueryObj.pageSize = obj.limit
                    operationLogqueryObj.beginTime = data.beginTime
                    operationLogqueryObj.endTime = data.endTime
                    operationLogqueryObj.businessType = data.businessType
                    let res = api_logManagement_operateList(operationLogqueryObj)
                    if (res.code == 200) {
                        OperationLogData = res.rows
                        layui.table.reload('ID-table', {
                            data: OperationLogData,
                        })
                        flushPage(res.total, obj.curr, obj.limit)
                    }
                }
            }
        });
    });
}

flushPage(num, curr, limit)num是数据总条数,curr是当前页,limit是当前页数据条数,operationLogqueryObj是定义在外面的对象用于筛选条件
2. 定义好后直接在代码里调用即可,我这里是默认第一次加载每页分10条数据

flushPage(res.total, 1, 10)
  1. 还有分页组件的使用还没说,这里在加载表格时将自带的分页page设置为fasle禁用掉
table.render({
            height: 600,
            elem: '#ID-table'
            , cols: [[ //标题栏
                { field: 'title', title: '系统模块' },
                { field: 'operName', title: '操作人员', },
                {
                    field: 'businessType', title: '操作类型', templet: function (d) {
                        return `<span>${d.businessType == 0 ? '其它' : ""}</span>
                        <span>${d.businessType == 1 ? '新增' : ""}</span>
                        <span>${d.businessType == 2 ? '修改' : ""}</span>
                        <span>${d.businessType == 3 ? '删除' : ""}</span>
                        <span>${d.businessType == 4 ? '授权' : ""}</span>
                        <span>${d.businessType == 5 ? '导出' : ""}</span>
                        <span>${d.businessType == 6 ? '导入' : ""}</span>
                        <span>${d.businessType == 7 ? '强退' : ""}</span>
                        <span>${d.businessType == 8 ? '生成代码' : ""}</span>
                        <span>${d.businessType == 9 ? '清空数据' : ""}</span>`;
                    }
                },
                { field: 'operIp', title: 'IP地址' },
                {
                    field: 'status', title: '操作状态', sort: true, templet: function (d) {
                        return `<span>${d.status == "0" ? "正常" : "异常"}</span>`;
                    }
                }
                , { field: 'operTime', title: '操作时间', sort: true, }
            ]]
            , toolbar: '#toolbarDemo'
            , data: OperationLogData
            , even: false
            , page: false // 是否显示分页
            , limits: [10, 25, 50, 100]
            , limit: 10 // 每页默认显示的数量
            , pagebar: '#ID-table-demo-page-pagebar',
        });
  1. 在表格底下定义自定义分页组件
<script type="text/html" id="ID-table-demo-page-pagebar">
                        <div id="demo-laypage-all"></div>
 </script>
  1. 表格加载时将pagebar设置为’#ID-table-demo-page-pagebar’就可以了,不过这样分页组件会默认靠右,我们可以稍微调整一下这样就可以靠左了
.layui-table-pagebar {
    float: left;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
LayUI 是一款轻量级的前端 UI 框架,提供了许多实用的组件,包括表格组件使用 LayUI表格组件可以方便地实现数据的展示、排序、分页、筛选等功能。 以下是 LayUI 表格组件使用步骤: 1. 引入 LayUI 的 CSS 和 JS 文件: ```html <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/css/layui.css"> <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.5.6/layui.js"></script> ``` 2. 编写 HTML 代码,包含表格容器和表格结构: ```html <div class="layui-container"> <table class="layui-table" lay-data="{url: 'data.json'}" lay-filter="demo"> <thead> <tr> <th lay-data="{field:'id', width:80}">ID</th> <th lay-data="{field:'username', width:120}">用户名</th> <th lay-data="{field:'email', width:200}">邮箱</th> <th lay-data="{field:'sex', width:80, templet:'#sexTpl'}">性别</th> <th lay-data="{field:'city'}">城市</th> <th lay-data="{field:'sign', width:200}">签名</th> <th lay-data="{field:'experience', sort:true, width:120}">积分</th> <th lay-data="{field:'score', sort:true, width:120}">评分</th> <th lay-data="{fixed: 'right', width:150, toolbar: '#barDemo'}">操作</th> </tr> </thead> </table> </div> <!-- 表格数据模板 --> <script type="text/html" id="sexTpl"> {{# if(d.sex === 1){ }} 男 {{# } else if(d.sex === 2) { }} 女 {{# } else { }} 未知 {{# } }} </script> <!-- 表格操作模板 --> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script> ``` 其中,`lay-data` 属性用来配置表格的数据源、列信息和事件监听器,`lay-filter` 属性用来标识表格实例的名称。 3. 初始化表格组件: ```javascript layui.use('table', function(){ var table = layui.table; // 监听表格操作事件 table.on('tool(demo)', function(obj){ var data = obj.data; if(obj.event === 'edit'){ // 编辑操作 } else if(obj.event === 'del'){ // 删除操作 } }); // 渲染表格 table.render({ elem: '.layui-table', height: 500, page: true, url: 'data.json', toolbar: '#toolbarDemo', cols: [[ {field:'id', width:80, title: 'ID'}, {field:'username', width:120, title: '用户名'}, {field:'email', width:200, title: '邮箱'}, {field:'sex', width:80, title: '性别', templet:'#sexTpl'}, {field:'city', title: '城市'}, {field:'sign', width:200, title: '签名'}, {field:'experience', width:120, title: '积分', sort:true}, {field:'score', width:120, title: '评分', sort:true}, {fixed: 'right', width:150, align:'center', toolbar: '#barDemo', title: '操作'} ]] }); }); ``` 其中,`table.render` 方法用来初始化表格实例,配置表格的相关属性,如数据源、列信息、分页、排序等。`table.on` 方法用来监听表格的操作事件,如编辑、删除等。 以上就是 LayUI 表格组件的基本使用方法。需要注意的是,表格组件还支持更多高级功能,如多级表头、自定义列、批量操作等,可以参考官方文档进行使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭寒ls

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值