layui table默認(rèn)跳頁后不存在源頁面選中的狀態(tài)。如果要實(shí)現(xiàn)記錄源頁面的選中狀態(tài),需要定義一個(gè)全局變量來記錄數(shù)據(jù)選中狀態(tài)。
1、修改table.js
;layui.define(["laytpl", "laypage", "layer", "form"], function (e) { "use strict"; var t = layui.$, i = layui.laytpl, a = layui.laypage, l = layui.layer, n = layui.form, o = layui.hint(), r = layui.device(), d = { //layuiPageCheckedIds變量記錄選中的數(shù)據(jù)id,格式是“,1,2,3,4,”的字符串 config: {checkName: "LAY_CHECKED", indexName: "LAY_TABLE_INDEX", layuiPageCheckedIds: ","}, cache: {}, index: layui.table ? layui.table.index + 1e4 : 0, set: function (e) { var i = this; return i.config = t.extend({}, i.config, e), i }, on: function (e, t) { return layui.onevent.call(this, s, e, t) } } ... S.prototype.pullData = function (e, i) { var a = this, n = a.config, o = n.request, r = n.response, d = function () { "object" == typeof n.initSort && a.sort(n.initSort.field, n.initSort.type) }; if (a.startTime = (new Date).getTime(), n.url) { var c = {}; //在發(fā)送請求前將選中的數(shù)據(jù)放入條件中 if(n.layuiPageCheckedIds != undefined && "" != n.layuiPageCheckedIds){ n.where.layuiCheckedIds = n.layuiPageCheckedIds; } if(tableRender){ var currPageNumber = getPageNumber(); c[o.pageName] = currPageNumber; tableRender = false; }else{ setPageNumberCookie(e); c[o.pageName] = e; } c[o.limitName] = n.limit; t.ajax({ type: n.method || "get", url: n.url, data: t.extend(c, n.where), dataType: "json", success: function (t) { if(null != startLoading){ layer.close(startLoading); startLoading = null; } return t[r.statusName] != r.statusCode ? (a.renderForm(), a.layMain.html('<div class="' + f + '">' + (t[r.msgName] || "返回的數(shù)據(jù)狀態(tài)異常") + "</div>")) : (a.renderData(t, e, t[r.countName]), d(), n.time = (new Date).getTime() - a.startTime + " ms", i && l.close(i), void("function" == typeof n.done && n.done(t, e, t[r.countName]))) }, error: function (e, t) { a.layMain.html('<div class="' + f + '">數(shù)據(jù)接口請求異常</div>'), a.renderForm(), i && l.close(i) } }); } else if (n.data && n.data.constructor === Array) { if(null != startLoading){ layer.close(startLoading); startLoading = null; } var s = {}, u = e * n.limit - n.limit; s[r.dataName] = n.data.concat().splice(u, n.limit), s[r.countName] = n.data.length, a.renderData(s, e, n.data.length), d(), "function" == typeof n.done && n.done(s, e, s[r.countName]) } } ... //在文件的最后添加設(shè)置選中變量的方法 //設(shè)置初始選中值 ,d.initPageCheckedIds=function(e,i){ if(i == undefined || i == ""){ i = ""; } if(i.length > 0 && "," != i.substring(0,1)){ i = "," + i; } if(i.length > 0 && "," != i.substring(i.length - 1, i.length)){ i = i + ","; } c.config[e].layuiPageCheckedIds = i; }, //獲取選中的ids, 參數(shù)e表示table的id d.getLayuiPageCheckedIds=function (e) { return c.config[e].layuiPageCheckedIds; }, //設(shè)置選中的ids,e表示table的id,obj表示選中的行數(shù)據(jù),v表示記錄哪一個(gè)參數(shù) d.setLayuiPageCheckedIds=function (e,obj,v) { var a = c.config[e]; var layuiPageCheckedIds = a.layuiPageCheckedIds; //全選按鈕 if(obj.type == "all"){ //全選 if (obj.checked) { var checkStatus = d.checkStatus(e); var datas = checkStatus.data; for(var i = 0; i < datas.length; i++) { layuiPageCheckedIds = d.setPageSelected(layuiPageCheckedIds, datas[i][v]); } } //取消全選 else { var cache = d.cache; var datas = cache[e]; for(var i = 0; i < datas.length; i++) { layuiPageCheckedIds = d.cancelPageSelected(layuiPageCheckedIds, datas[i][v]); } } } //單行選中 else { //選中 if (obj.checked) { layuiPageCheckedIds = d.setPageSelected(layuiPageCheckedIds, obj.data[v]); } //取消選中 else { layuiPageCheckedIds = d.cancelPageSelected(layuiPageCheckedIds, obj.data[v]); } } a.layuiPageCheckedIds = layuiPageCheckedIds; }, //添加選中項(xiàng) d.setPageSelected=function(layuiPageCheckedIds, seleted){ if(layuiPageCheckedIds == undefined || layuiPageCheckedIds == ""){ return "," + seleted + ","; }else{ return layuiPageCheckedIds + seleted + ","; } }, //取消選中項(xiàng) d.cancelPageSelected=function (layuiPageCheckedIds, seleted) { var match = "," + seleted + ","; var pos = layuiPageCheckedIds.indexOf(match); if (pos >= 0) { return layuiPageCheckedIds.substring(0, pos) + layuiPageCheckedIds.substring(pos + match.length - 1); } } });
當(dāng)前題目:layuitable復(fù)選框跳頁后再回來保持原來選中的狀態(tài)示例-創(chuàng)新互聯(lián)
當(dāng)前地址:http://www.rwnh.cn/article44/hdihe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、靜態(tài)網(wǎng)站、軟件開發(fā)、ChatGPT、品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容