欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

layui表格分页 记录勾选的实例

程序员文章站 2022-05-14 16:42:28
layui 分页之后没有记录之前勾选项的功能 , 自己写了一个 , 主要点就是表格的done 函数 ,每次渲染完成之后做表格勾选操作。然后需要一个全局变量记录所有已经勾选的...

layui 分页之后没有记录之前勾选项的功能 , 自己写了一个 , 主要点就是表格的done 函数 ,每次渲染完成之后做表格勾选操作。然后需要一个全局变量记录所有已经勾选的项 。下面是自己的代码 。

首先,监听表格的复选框点击事件 , 将单选或全选全部记录下来

 var checkarray = new array();
 // 当前页数据
 var currentarray ;
   //监听行单击事件(单击事件为:rowdouble)
   table.on('checkbox(test)', function(obj){
    var checkdata = obj.data ;
    // 如果是全选中
    if(obj.type == 'all' && obj.checked == true){
     var checkstatus = table.checkstatus('demo')
      ,data = checkstatus.data;

     for(var i in data){
      // 如果包含就去掉 ,不包含就添加
      if(checkarray.indexof(data[i].eventtypename) > -1){
      }else {
       checkarray.push(data[i].eventtypename) ;
      }
     }
    }
    // 全不选中
    else if(obj.type == 'all' && obj.checked == false){

     for(var i in currentarray){
      checkarray.remove(currentarray[i].eventtypename) ;
     }
    }
    // 如果是单选
    else {
     var eventtypename = checkdata.eventtypename ;
     // 如果包含就去掉 ,不包含就添加
     if(checkarray.indexof(eventtypename) > -1){
      checkarray.remove(eventtypename) ;
     }else {
      checkarray.push(eventtypename) ;
     }
    }
   });

然后 ,

done: function(res, curr, count){
     //如果是异步请求数据方式,res即为你接口返回的信息。
     //如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
     currentarray = res.data ;

     //.假设你的表格指定的 id="maintb",找到框架渲染的表格
     var tbl = $('#demo').next('.layui-table-view');

     // 渲染选择框
     for(var i in currentarray){

      for(var j in checkarray){
       if(currentarray[i].eventtypename == checkarray[j]){
        tbl.find('table>tbody>tr').eq(i).find('td').eq(0).find('input[type=checkbox]').prop('checked', true);
       }
      }
     }

     form.render('checkbox');
    }

以上这篇layui表格分页 记录勾选的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。