第一次使用Layui 分页

摘要:
that){currData=usersData.concat().splice(curr*nums-nums,nums);}else{currData=that.concat().splice(curr*nums-nums,nums);}if(currData.length!

第一步:添加引用

<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   data-id="' + currData[i].Id + '"><i class="layui-icon">�</i> 删除</a>'
                    + '</td>'
                    + '</tr>';
                }
            } else{
                dataHtml = '<tr><td colspan="8">暂无数据</td></tr>';
            }
            returndataHtml;
        }

        //分页
        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, intpageIndex)
        {
               //使用EF框架的增删改查和分页的公共类
                BaseRepository<Articles> db = new BaseRepository<Articles>();
                inttotal;
                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}
                };
                returnJson(dic, JsonRequestBehavior.AllowGet);
        }

后来发现layui数据表格更好用

免责声明:文章转载自《第一次使用Layui 分页》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇EBS年底定义sequence以及assign的相关操作深入浅出Blazor webassembly之HttpClient使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

并发下的死锁问题

    写本文之前我还傻傻的以为死锁只能是那种经典:     session1  session2     update    select     select    update     不多说明了教科书般的经典案例,对SQL 的理解逐渐深入,遇到的案例也不断增加今天来分享一个同一张表2类update 语句使用不同索引,在大量并发下导致的死锁。    ...

css中width和height默认值

width和height默认都是auto自动伸缩的,但不同的标签效果却不一样比如div默认是100%,通常不用写100%如果是table,如果div内的table没有设定100%,那就是最小值,以td为准,td没设宽度的话,就以td的内容自动撑开width;那这个div的width就是100%,table=td通常情况,各个标签的height默认是0,根据...

美团开源 SQL 优化工具 SQLAdvisor

https://www.oschina.net/news/82725/sqladvisor-opensource https://github.com/Meituan-Dianping/SQLAdvisor SQLAdvisor 是由美团点评公司北京 DBA 团队开发维护的 SQL 优化工具:输入SQL,输出索引优化建议,现已开源。 它基于 MySQL 原...

Oracle 中truncate与delete的区别[转]

truncate是oracle中独有的关键字吧!它的作用是清空一个表格,在删除数据方面,其与delete有一些区别,以便自己记住: 1、在功能上,truncate是清空一个表的内容,它相当于delete from table_name。2、delete是dml操作,truncate是ddl操作;因此,用delete删除整个表的数据时,会产生大量的rool...

mysql升级后提示Please run mysql_upgrade

现象: 2020-12-10T05:16:25.210531Z 7003 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name.  Please run mysql_upgrade2020-12-10T05:16:...

Android ORM——初识greenDAO 3及使用greenDAO 3前应该掌握的一些知识点(一)

引言 总所周知,SQLite——内嵌于Android中一个占用内存极小的关系型,作为我们Android存储领域中重要的一员 ,或多或少都曾接触到数据库。即使Android系统中提供了很多操作SQLite的API,可是在业务开发中还是须要手动去编写原生SQL语句,这不仅复杂、不好维护。更重要的是不高效,经常会由于SQL语句写错而添加了开发成本,于是便出现...