layui實現自動分頁以及資料表格的過載
阿新 • • 發佈:2021-01-11
在我們直接用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 頁開始
}
});
})
});