Layui 分页

Posted sword082419

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Layui 分页相关的知识,希望对你有一定的参考价值。

第一步:添加引用

<link href="~/Content/layuiCMS/layui/css/layui.css" rel="stylesheet" />
<script src="~/Content/layuiCMS/layui/layui.js"></script>

 

二、界面设计

技术分享图片
<div class="layui-form news_list">
        <div class="layui-form users_list">
            <table class="layui-table">
                <colgroup>
                    <col width="50">
                    <col>
                    <col width="18%">
                    <col width="8%">
                    <col width="12%">
                    <col width="12%">
                    <col width="18%">
                    <col width="15%">
                </colgroup>
                <thead>
                    <tr>
                        <th><input type="checkbox" name="" lay-skin="primary" lay-filter="allChoose" id="allChoose"></th>
                        <th>登录名</th>
                        <th>姓名</th>
                        <th>性别</th>
                        <th>邮箱</th>
                        <th>地址</th>
                        <th>时间</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody class="users_content"></tbody>
            </table>
        </div>
        <div id="page"></div>
    </div>
技术分享图片

三、添加一个js文件,并将文件引入界面:

技术分享图片
layui.config({
    base : "js/"
}).use([‘form‘,‘layer‘,‘jquery‘,‘laypage‘],function(){
    var form = layui.form(),
        layer = parent.layer === undefined ? layui.layer : parent.layer,
        laypage = layui.laypage,
        $ = layui.jquery;

    //加载页面数据
    var usersData = ‘‘;
    $.get("/UserManage/GetInfo",{
        pageSize:10, //显示页面的数量
        pageindex:1 //当前页
    }, function (data) {
          usersData = data.rows;
          //执行加载数据的方法
          usersList(data.rows);
    })

    //表格数据和分页
    function usersList(that) {
        //渲染数据
        function renderDate(curr) {
            var datahtml = ‘‘;
            if (!that) {
                currData = usersData.concat().splice(curr * nums - nums, nums);
            } else {
                currData = that.concat().splice(curr * nums - nums, nums);
            }
            if (currData.length != 0) {
                for (var i = 0; i < currData.length; i++) {
                    dataHtml += ‘<tr>‘
                    + ‘<td><input type="checkbox" name="checked"  value="‘ + currData[i].Id + ‘" lay-skin="primary" lay-filter="choose"></td>‘
                    + ‘<td>‘ + currData[i].LoginName + ‘</td>‘
                    + ‘<td>‘ + currData[i].Name + ‘</td>‘
                    + ‘<td>‘ + currData[i].Sex + ‘</td>‘
                    + ‘<td>‘ + currData[i].Email + ‘</td>‘
                    + ‘<td>‘ + currData[i].Address + ‘</td>‘
                    + ‘<td>‘ + currData[i].Birth + ‘</td>‘
                    + ‘<td>‘
                    + ‘<a class="layui-btn layui-btn-mini users_edit layui-btn-mini"><i class="iconfont icon-edit"></i> 编辑</a>‘
                    + ‘<a class="layui-btn layui-btn-danger layui-btn-mini users_del" data-id="‘ + currData[i].Id + ‘"><i class="layui-icon"></i> 删除</a>‘
                    + ‘</td>‘
                    + ‘</tr>‘;
                }
            } else {
                dataHtml = ‘<tr><td colspan="8">暂无数据</td></tr>‘;
            }
            return dataHtml;
        }

        //分页
        var nums = 10; //每页出现的数据量
        laypage({
            cont: "page",
            pages: Math.ceil(usersData.length / nums), //得到总页数
            skip: true, //是否开启跳页
            groups: 5, //连续显示分页数
            jump: function (obj) {
                $(".users_content").html(renderDate(obj.curr));   //渲染数据
                $(‘.users_list thead input[type="checkbox"]‘).prop("checked", false);
                form.render(); //渲染表单
            }
        })
    }
    //全选
    form.on(‘checkbox(allChoose)‘, function (data) {
        var child = $(data.elem).parents(‘table‘).find(‘tbody input[type="checkbox"]:not([name="show"])‘);
        child.each(function (index, item) {
            item.checked = data.elem.checked;
        });
        form.render(‘checkbox‘);
    });

    //通过判断文章是否全部选中来确定全选按钮是否选中
    form.on("checkbox(choose)", function (data) {
        var child = $(data.elem).parents(‘table‘).find(‘tbody input[type="checkbox"]:not([name="show"])‘);
        var childChecked = $(data.elem).parents(‘table‘).find(‘tbody input[type="checkbox"]:not([name="show"]):checked‘)
        if (childChecked.length == child.length) {
            $(data.elem).parents(‘table‘).find(‘thead input#allChoose‘).get(0).checked = true;
        } else {
            $(data.elem).parents(‘table‘).find(‘thead input#allChoose‘).get(0).checked = false;
        }
        form.render(‘checkbox‘);
    })


})
技术分享图片

 

后台控制器:

技术分享图片
   public ActionResult GetInfo(int pageSize, int pageIndex)
        {
               //使用EF框架的增删改查和分页的公共类
                BaseRepository<Articles> db = new BaseRepository<Articles>();
                int total;
                Func<Articles, bool> where = s => s.ID > 0 && s.Type == 2;
                Func<Articles, int> order = s => s.ID;
                var list = db.LoadPagerEntities(pageSize, pageIndex, out total, where, false, order).ToList();
                var dic = new Dictionary<string, object>
                {
                    {"rows",list },
                    {"total", total}
                };
                return Json(dic, JsonRequestBehavior.AllowGet);
        }
技术分享图片


以上是关于Layui 分页的主要内容,如果未能解决你的问题,请参考以下文章

使用Layui和Vue实现分页

layui怎么结合thinkphp进行搜索分页

SSM项目layui分页实例

layui的数据表格(table)分页篇

layui分页怎么配合php使用

layui的table怎么改变分页的颜色