您的位置:

layui表格之layuitablecheckbox详解

一、layuitablecheckbox概述

layui是一套基于jQuery实现的前端UI框架,目前在Web应用开发中广泛应用。其中,layuitablecheckbox作为layui表格中的一个重要组件,为多选操作提供了方便的实现方式,同时也为表格的操作提供了更多的灵活性和扩展性。

layuitablecheckbox可用于进行表格数据的多选操作,通过选择checkbox可以同时选取表格中的多行数据,并可以对已选中的数据停用、删除等操作。

二、基本用法

首先需要在HTML页面中引入layui核心库和表格模块的css和js文件:


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css">
  <title>layuitablecheckbox基本用法</title>
</head>
<body>
  <table id="test" lay-filter="test"></table>
  <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script>
</body>
</html>

然后在JS代码中定义表格的数据源和列属性,并进行表格的渲染:


layui.use('table', function(){
  var table = layui.table;
  
  //定义数据源
  var data = [{
      id: '1',
      name: '张三',
      age: '23',
      sex: '男',
      city: '北京'
    }, {
      id: '2',
      name: '李四',
      age: '25',
      sex: '女',
      city: '上海'
    }, {
      id: '3',
      name: '王五',
      age: '28',
      sex: '男',
      city: '杭州'
    }];
  
  //定义列属性
  var cols = [[
      {type:'checkbox', width:'10%'},
      {field:'id', title:'ID', width:'20%'},
      {field:'name', title:'姓名', width:'20%'},
      {field:'age', title:'年龄', width:'20%'},
      {field:'sex', title:'性别', width:'20%'},
      {field:'city', title:'城市', width:'20%'}
    ]];
  
  //渲染表格
  table.render({
    elem: '#test',
    data: data,
    cols: cols
  });
});

最后我们就可以得到运行结果如下:

三、高级用法

1. layuicheckbox的配置属性

layuitablecheckbox提供了丰富的配置属性,可以通过这些属性定制化自己需要的复选框组件

下面是比较常用的配置属性:

  • lay-skin: 皮肤风格,可选值有默认值和line两种,(例如:lay-skin="line")
  • lay-filter: 用于过滤点击事件的名称
  • lay-ignore: 如果设置为true,将忽略该checkbox的操作,不会影响复选框计数器

下面是对应的代码示例:


var cols = [[
    {type:'checkbox', width:'10%', lay-skin:'line', lay-filter:'test'},
    {field:'id', title:'ID', width:'20%'},
    {field:'name', title:'姓名', width:'20%'},
    {field:'age', title:'年龄', width:'20%'},
    {field:'sex', title:'性别', width:'20%'},
    {field:'city', title:'城市', width:'20%'}
]];

table.render({
  elem: '#test',
  data: data,
  cols: cols
});

2. layuitablecheckbox的事件监听和操作

在layuitablecheckbox中,可以通过监听checkbox的选中和取消事件,获取选中的行数据,并对其进行进一步操作。

其中laytable_check和laytable_uncheck分别表示被选中和取消选中事件。监听的方式可以通过layui表格的on函数进行定义:


table.on('checkbox(test)', function(obj){
  console.log(obj.checked); //当前是否选中状态 true | false
  console.log(obj.data); //选中行的相关数据
  console.log(obj.type); //事件类型,如果是全选,则为all,如果是单选,则为one
});

除了对选中的行数据进行获取,layuitablecheckbox还提供了一系列的API函数,可以对已选中的行进行批量操作:

  • table.checkStatus: 获取已选中的复选框
  • table.reload: 重载表格
  • table.reload: 构建表格头

这里我们可以通过一个实例来学习如何进行批量操作,比如删除已选中的行数据:


//获取已选中的行的id
var ids = [];
var checkStatus = table.checkStatus('test');
checkStatus.data.forEach(function(n){
  ids.push(n.id);
});

//提交数据,进行删除操作
$.post('/table/delete', {ids: ids}, function(res){
  if(res.code == 0){
    //重载表格
    table.reload('test');
  }
});

四、总结

通过本文的介绍,相信大家对于layuitablecheckbox的使用和扩展已经掌握了一定的技能。本文介绍了其基本用法和高级技巧,大家可以按照自己的需要尝试使用相关的配置属性和事件监听等。这里还需要注意的是,layuitablecheckbox虽然简单易用,但不能盲目使用,需要在实际的应用场景中进行充分测试和优化。