最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

layui table 復(fù)選框跳頁(yè)后再回來(lái)保持原來(lái)選中的狀態(tài)示例

 更新時(shí)間:2019年10月26日 15:12:41   作者:Michean  
今天小編就為大家分享一篇layui table 復(fù)選框跳頁(yè)后再回來(lái)保持原來(lái)選中的狀態(tài)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

layui table默認(rèn)跳頁(yè)后不存在源頁(yè)面選中的狀態(tài)。如果要實(shí)現(xiàn)記錄源頁(yè)面的選中狀態(tài),需要定義一個(gè)全局變量來(lái)記錄數(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ā)送請(qǐng)求前將選中的數(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ù)接口請(qǐng)求異常</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);
  }
 }
});

2、后臺(tái)根據(jù)id設(shè)置數(shù)據(jù)選中狀態(tài)

@RequestMapping(value = "/search", method = RequestMethod.GET)
 @ResponseBody
 public Map<String, Object> search(Pageable pageable, @RequestParam List<Long> layuiCheckedIds) {
  Map<String, Object> rst = new HashMap<>(4);
  rst.put("code", 0);
  rst.put("msg", "");

  Page<Person> page = personService.findPage(pageable);
  
  rst.put("count", page.getTotalSize());
  List<Map<String, Object>> datas = new ArrayList<>(8);
  
  for (Person person : page.getContent()) {
   Map<String, Object> view = new HashMap<>(4);
   view.put("id", person.getId());
   view.put("name", person.getName());
 
 //如果person.getId()已經(jīng)被選中,則設(shè)置選中狀態(tài)
   if (!CollectionUtils.isEmpty(layuiCheckedIds) && layuiCheckedIds.contains(person.getId())) {
    view.put("LAY_CHECKED", true);
   }
   ...
   datas.add(view);
  }
  rst.put("data", datas);
  return rst;
 }

3、前端用法

layui.use("table", function(){
 var table = layui.table;

 //設(shè)置初始選中項(xiàng)
 var checkedIds = "1,2,3,4";
 table.render({
 elem: '#test',
 url:"./person/search",
 where: {"layuiCheckedIds": checkedIds },
 ,cols: [[
 {type:'checkbox', width:'10%'},
 {field:'id', title: 'ID', width:'20%'},
 {field:'name', title: '姓名', width:'15%'}
 ]],
 page: true,
 id:'idTest'
 });
 //初始化選中項(xiàng)
 table.initPageCheckedIds('idTest', checkedIds );
 //監(jiān)聽(tīng)表格復(fù)選框選擇
 table.on('checkbox(demo)', function(obj){
  //設(shè)置多頁(yè)面選中效果
  //第一個(gè)參數(shù)表示table的id值,第二個(gè)參數(shù)表示復(fù)選框選中的數(shù)據(jù),第三個(gè)參數(shù)表示要解析的是哪一個(gè)屬性值(這里是將數(shù)據(jù)模型中的id屬性進(jìn)行解析)。
  table.setLayuiPageCheckedIds('idTest',obj, "id");
 
 //獲取所有選中的id值(例如:“,1,2,5,7,3,15,22”)
 //alert(table.getLayuiPageCheckedIds('idTest'));
 });
});

以上這篇layui table 復(fù)選框跳頁(yè)后再回來(lái)保持原來(lái)選中的狀態(tài)示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用webpack編譯es6代碼的方法步驟

    使用webpack編譯es6代碼的方法步驟

    這篇文章主要介紹了使用webpack編譯es6代碼的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • IE瀏覽器中圖片onload事件無(wú)效的解決方法

    IE瀏覽器中圖片onload事件無(wú)效的解決方法

    在做一個(gè)項(xiàng)目的時(shí)候才發(fā)現(xiàn)的這個(gè)bug,其實(shí)這是一個(gè)很常見(jiàn)的問(wèn)題,只是之前對(duì)圖片的處理太少,沒(méi)有碰到過(guò)。
    2014-04-04
  • JS監(jiān)聽(tīng)事件的疊加和移除功能

    JS監(jiān)聽(tīng)事件的疊加和移除功能

    這篇文章主要介紹了JS監(jiān)聽(tīng)事件的疊加和移除功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-11-11
  • JavaScript事件學(xué)習(xí)小結(jié)(一)事件流

    JavaScript事件學(xué)習(xí)小結(jié)(一)事件流

    這篇文章主要介紹了JavaScript事件學(xué)習(xí)小結(jié)(一)事件流的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • 微信小程序?qū)崿F(xiàn)走馬燈效果實(shí)例

    微信小程序?qū)崿F(xiàn)走馬燈效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)走馬燈效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • JavaScript腳本性能優(yōu)化注意事項(xiàng)

    JavaScript腳本性能優(yōu)化注意事項(xiàng)

    本文總結(jié)了我在JavaScript編程中所找到的提高JavaScript運(yùn)行性能的一些方法,其實(shí)這些經(jīng)驗(yàn)都基于幾條原則
    2008-11-11
  • 獲取select元素被選中的文本內(nèi)容的js代碼

    獲取select元素被選中的文本內(nèi)容的js代碼

    獲取select元素被選中的文本內(nèi)容的方法有很多,本文為大家介紹下使用javascript來(lái)輕松實(shí)現(xiàn)下
    2014-01-01
  • 前端實(shí)現(xiàn)Word在線預(yù)覽功能詳解

    前端實(shí)現(xiàn)Word在線預(yù)覽功能詳解

    這篇文章主要給大家介紹了關(guān)于前端實(shí)現(xiàn)Word在線預(yù)覽功能的相關(guān)資料,工作中經(jīng)常有時(shí)會(huì)遇到需要給用戶創(chuàng)建word文檔并實(shí)現(xiàn)word文檔在線預(yù)覽的需求,需要的朋友可以參考下
    2023-09-09
  • 一文詳解Canvas實(shí)現(xiàn)打飛字游戲過(guò)程示例

    一文詳解Canvas實(shí)現(xiàn)打飛字游戲過(guò)程示例

    這篇文章主要為大家介紹了Canvas實(shí)現(xiàn)打飛字游戲示例過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • JavaScript寄生組合式繼承原理與用法分析

    JavaScript寄生組合式繼承原理與用法分析

    這篇文章主要介紹了JavaScript寄生組合式繼承,結(jié)合實(shí)例形式分析了javascript寄生組合式繼承的原理、定義與簡(jiǎn)單使用方法,需要的朋友可以參考下
    2019-01-01

最新評(píng)論

蓬莱市| 西华县| 宿迁市| 临安市| 克拉玛依市| 金堂县| 渭源县| 周至县| 古蔺县| 古蔺县| 衡阳市| 开江县| 岢岚县| 嵩明县| 英德市| 万安县| 开江县| 昔阳县| 陆河县| 北安市| 苍溪县| 六安市| 昌都县| 黎城县| 日照市| 砚山县| 罗城| 海口市| 祁连县| 闸北区| 邵东县| 韶山市| 牡丹江市| 武胜县| 平远县| 昆山市| 昌黎县| 巴林右旗| 莱阳市| 讷河市| 射阳县|