1. 程式人生 > 其它 >layui實現自動分頁以及資料表格的過載

layui實現自動分頁以及資料表格的過載

技術標籤:筆記前端

在我們直接用layui的表格的接收後臺全部資料的時候,所有資料會在同一頁顯示,無法實現自動分頁,最近寫專案的時候碰到了這個問題,把我的解決辦法記錄下來,以後可能會用到。加一條實現搜尋的功能
html部分

<div class="layuimini-container" style="margin-top: 60px">
    <div class="layuimini-main">

        <fieldset class="table-search-fieldset"
>
<legend>搜尋資訊</legend> <div style="margin: 10px 10px 10px 10px"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label"style="width: 100px;">事務標題:</
label
>
<div class="layui-input-inline"> <input type="text" name="title" id="title" autocomplete="off" class="layui-input"> </div> </
div
>
<div class="layui-inline"> <label class="layui-form-label">開始日:</label> <div class="layui-input-inline"> <input type="text" id="start" name="start" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-inline"> <label class="layui-form-label">截止日:</label> <div class="layui-input-inline"> <input type="text" id="end" name="end" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-inline"> <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button> </div> </div> </div> </fieldset> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"> </table> <script type="text/html" id="currentTableBar"> <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="look">檢視</a> </script> </div> </div>

js部分

    layui.use(['form', 'table','laydate','laypage'], function () {
        var $ = layui.jquery,
           table = layui.table;
   table.render({
            elem: '#currentTableId',
            url: '../api/table2.1.json',//你自己的介面
            toolbar: 'true',//頭部工具欄
            height:500,//表格高度
            cols: [[
                {type: "checkbox", width: 50},
                {field: 'id', width: 130, title: '事務ID', sort: true},
                {field: 'title', width: 250, title: '事務標題'},
                {field: 'type', width: 150, title: '事務型別'},
                {field: 'task', width: 150, title: '事務分類'},
                {field: 'create_time', width: 200, title: '釋出時間', sort: true},
                {field: 'finish-time', width: 200, title: '截止時間', sort: true},
                {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
            ]],
            skin: 'row '//設定表格各種外觀、尺寸等
            ,id: 'tableAll'//設定容器唯一 id。
            ,page: true//開啟分頁
            , limits: [10, 15, 20]  //一頁選擇顯示3,5或10條資料
            , limit: 10 //一頁顯示6條資料
            , parseData: function (res) { //將原始資料解析成 table 元件所規定的資料,res為從url中get到的資料
                var result;
                // console.log(this);
                // console.log(JSON.stringify(res));
                if (this.page.curr) {
                    result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
                }
                else {
                    result = res.data.slice(0, this.limit);
                }
                return {
                    "code": res.code, //解析介面狀態
                    "msg": res.msg, //解析提示文字
                    "count": res.count, //解析資料長度
                    "data": result //解析資料列表
                };
            }
        });
        //資料表格的過載
        $('.layui-btn').click(function () {
            table.reload('tableAll', {
                url: '../api/table2.1search.json'//向後臺傳送請求
                ,methods:"post"
                ,where: {
                    title :$('#title').val(),//搜尋條件
                    start:$('#start').val(),
                    end:$('#end').val()
                }
                ,page: {
                    curr: 1 //重新從第 1 頁開始
                }
            });
        })
        });