layui table數據表格reload where參數保留問題
在使用layui過程中多多少少會遇到些問題
table reload 有個坑:reload時where參數會保留上次的參數,如果用
done: function(res, curr, count){ this.where={};}
來處理,默認的表格分頁會把第一次請求的參數去掉。兩者遇到些沖突。
用下面的方式來解決:
var tableIns = table.render({
elem: '#test-table-toolbar' //綁定table表格
// ,url: '/api/mockrecord/findByRPID?rpid=100002'
,url: '/api/bug/findAllPageInfo?project_name='+project_name
,toolbar: '#test-table-toolbar-toolbarDemo'
,title: '用戶數據表'
//,height:500
//不建議這樣使用,建議直接返回Map
/*,parseData: function(res){ //res 即為原始返回的數據
return {
"code": 0, //解析接口狀態
"msg": "hint message", //解析提示文本
"count": 10, //解析數據長度
"data": res //解析數據列表
};
}*/
/*
,request: {
pageName: 'curr' //頁碼的參數名稱,默認:page
,limitName: 'nums' //每頁數據量的參數名,默認:limit
}*/
,cols: [[
// {type: 'checkbox', fixed: 'left'},
{field:'bug_key', title: '關鍵字', width: 150,fixed: 'left'}
,{field:'bug_summary', title:'概要', width:600, unresize: true/*, sort: true*/}
,{field:'bug_labels', title:'模塊', width:100, sort: true}
,{field:'bug_labels', title:'類型', width:100, sort: true}
,{field:'bug_assigneedisplayname', title:'經辦人', width:100, templet: function(res){
return '<em>'+ res.bug_assigneedisplayname +'</em>'
}}
,{field:'bug_reporterdisplayname', title:'報告人', width:100, templet: function(res){
return '<em>'+ res.bug_reporterdisplayname +'</em>'
}}
,{field:'bug_priority', title:'優先級', width:100, /*, sort: true*/}
,{field:'bug_status', title:'狀態', width:100}
,{field:'bug_createddate', title:'創建日期',width:100,templet: '<div>{{ layui.laytpl.toDateString(d.bug_createddate) }}</div>'}
,{field:'bug_updateddate', title:'已更新',width:100,templet: '<div>{{ layui.laytpl.toDateString(d.bug_createddate) }}</div>'}
,{field:'bug_duedate', title:'到期日',width:100,templet: '<div>{{ layui.laytpl.toDateString(d.bug_createddate) }}</div>'}
,{fixed: 'right', title:'操作', toolbar: '#test-table-toolbar-barDemo', width:150}
]]
,page: true
,limit: 50
,limits: [50, 100, 150]
// ,layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']
,jump: function(obj, first){
if(!first){
layer.msg('第 '+ obj.curr +' 頁');
}
}
});
使用table的實例化對象來reload
tableIns.reload({
page: {
curr: 1 //重新從第 1 頁開始
,limit:50
}
, method:'POST'
,url: '/api/bug/findAllBugsBySearchCondition'
,where: formData
,contentType: 'application/json'
//,height: 300
,done: function(res, curr, count){
//this.where={};
//不清空,有問題:搜索條件會保留
//清空, 有問題:分頁的時候沒有搜索條件了,分頁會受到影響
}
});