layui 简单实现 TABLE 分页功能

HTML:

<!-- 引入 layui.css -->
<link rel="stylesheet" href="//unpkg.com/layui@2.6.8/dist/css/layui.css">

<!-- 引入 layui.js -->
<script src="//unpkg.com/layui@2.6.8/dist/layui.js">


<table class="layui-hide" id="test"></table>
<script>
    layui.use('table', function () {
        var table = layui.table;
        table.render({
            elem: '#test'//对应着Table的ID
            , method: 'get'
            , url: '/Demo/GetJson2'//URL为数据接口的地址
            , request: {  //自定义 page  limit
                pageName: 'pageNo',    //页码的参数名称,默认:page
                limitName: 'pageSize'  //每页数据量的参数名,默认:limit
            }
            , parseData: function (res) {
                return {
                    "code": 0,//数据类型,必须的
                    "count": res.count,//总记录数,用于分页
                    "data": res.data,//必须的
                }
            }
            , cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
            , cols: [[
                { field: 'id', title: '编号', width: 80, sort: true }
                , { field: 'name', title: '姓名', width: 100, sort: true }
                , { field: 'age', title: '年龄', width: 80, sort: true}
                , { field: 'sex', title: '性别', width: 80, sort: true }
            ]],
            limits: [15, 30, 50, 100],
            limit: 15,
            page: true,
        });
    });
</script>

MVC:

//模拟生成一个JSON
public ActionResult GetJson2(int pageNo, int pageSize)
{
            Random ra = new Random();//随机数
            int count = pageSize * 10;//总记录数

            string json = "";
            json += "{";
            json += "\"count\":" + count + ",";

            string data = "\"data\":[";
            for (int i = ((pageNo - 1) * pageSize); i < (pageNo * pageSize); i++)
            {
                if (data == "\"data\":[")
                {
                    data += "{\"id\":" + (i + 1) + ",\"name\":\"姓名_" + (i + 1).ToString() + "\",\"age\":" + ra.Next(10, 30) + ",\"sex\":\"" + ((i % 3 == 0) ? "女" : "男") + "\"}";
                }
                else
                {
                    data += ",{\"id\":" + (i + 1) + ",\"name\":\"姓名_" + (i + 1).ToString() + "\",\"age\":" + ra.Next(10, 30) + ",\"sex\":\"" + ((i % 3 == 0) ? "女" : "男") + "\"}";
                }
            }
            json += data + "]";

            json += "}";

            return Content(json);
}

 JSON字符串:

{"count":150,"data":[{"id":1,"name":"姓名_1","age":10,"sex":"女"},{"id":2,"name":"姓名_2","age":20,"sex":"男"},{"id":3,"name":"姓名_3","age":20,"sex":"男"},{"id":4,"name":"姓名_4","age":17,"sex":"女"},{"id":5,"name":"姓名_5","age":14,"sex":"男"},{"id":6,"name":"姓名_6","age":12,"sex":"男"},{"id":7,"name":"姓名_7","age":16,"sex":"女"},{"id":8,"name":"姓名_8","age":14,"sex":"男"},{"id":9,"name":"姓名_9","age":14,"sex":"男"},{"id":10,"name":"姓名_10","age":13,"sex":"女"},{"id":11,"name":"姓名_11","age":13,"sex":"男"},{"id":12,"name":"姓名_12","age":25,"sex":"男"},{"id":13,"name":"姓名_13","age":28,"sex":"女"},{"id":14,"name":"姓名_14","age":22,"sex":"男"},{"id":15,"name":"姓名_15","age":28,"sex":"男"}]}

 预览:


简单说明:

  • 开启分页功能:  page: true,
  • 当前每页记录数: limit: 15,
  • 记录数可选的集合: limits: [15, 30, 50, 100],
  • 从layui传递给mvc的分页参数: request: { pageName: 'pageNo', limitName: 'pageSize' }
  • 在mvc接收layui传来分页参数: public ActionResult GetJson2(int pageNo, int pageSize)
  • layui接收mvc传来的值: 

parseData: function (res) {               

return {

                    "code": 0,//数据类型,必须的
                    "count": res.count,//总记录数,用于分页
                    "data": res.data,//必须的
                }
            }


本文源码下载:

https://download.csdn.net/download/djk8888/86341738

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 layuitable 模块的 page 和 limit 参数实现分页,同时使用自定义的方法来实现汇总。具体实现可以参考以下代码: // 定义表格 layui.table.render({ elem: '#demo', url: '/api/table', cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'username', title: '用户名', width: 120}, {field: 'email', title: '邮箱', minWidth: 150}, {field: 'sex', title: '性别', width: 80, sort: true}, {field: 'city', title: '城市', width: 100}, {field: 'sign', title: '签名', minWidth: 150}, {field: 'experience', title: '积分', width: 80, sort: true}, {field: 'score', title: '评分', width: 80, sort: true}, {field: 'classify', title: '职业', width: 100}, {field: 'wealth', title: '财富', width: 135, sort: true}, {fixed: 'right', title:'操作', toolbar: '#barDemo', width:150} ]], page: true, // 开启分页 limit: 10, // 每页显示的数量 limits: [10, 20, 30, 40, 50], // 每页显示数量的选项 done: function(res, curr, count) { // 表格渲染完成后的回调函数 // 计算总积分和总评分 var totalExperience = 0; var totalScore = 0; for (var i = 0; i < res.data.length; i++) { totalExperience += res.data[i].experience; totalScore += res.data[i].score; } // 在表格底部添加汇总行 var html = '<tr><td colspan="6">总计</td><td>' + totalExperience + '</td><td>' + totalScore + '</td><td colspan="3"></td></tr>'; $('#demo').next('.layui-table-view').find('.layui-table').append(html); } }); // 定义工具栏 layui.table.on('tool(test)', function(obj){ var data = obj.data; if(obj.event === 'detail'){ layer.msg('ID:'+ data.id + ' 的查看操作'); } else if(obj.event === 'del'){ layer.confirm('真的删除行么', function(index){ obj.del(); layer.close(index); }); } else if(obj.event === 'edit'){ layer.alert('编辑行:<br>'+ JSON.stringify(data)) } }); // 定义分页 layui.laypage.render({ elem: 'pageDemo', count: 100, limit: 10, limits: [10, 20, 30, 40, 50], layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], jump: function(obj, first){ if(!first){ layer.msg('第 '+ obj.curr +' 页'); } } }); 注意:以上代码仅供参考,具体实现需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值