layui.table组件的用法

文章介绍了Layui的table组件如何用于展示表格数据,包括基本用法如引入CSS和JS文件,设置表格元素,渲染表格,监听工具条事件,以及更高级的功能如分页、排序和筛选等。示例代码展示了如何创建一个包含编辑和删除操作的表格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Layui 是一款轻量级的前端 UI 框架,其中的 layui.table 组件是用来展示表格数据的组件。下面是 layui.table 的用法示例。

基本用法

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layui.table 基本用法示例</title>
  <link rel="stylesheet" href="//cdn.staticfile.org/layui/2.5.7/css/layui.min.css">
</head>
<body>

  <table id="demo" lay-filter="test"></table>

  <script src="//cdn.staticfile.org/layui/2.5.7/layui.min.js"></script>
  <script>
    layui.use(['table'], function(){
      var table = layui.table;

      // 渲染表格
      table.render({
        elem: '#demo',
        url: '/api/getData',
        cols: [[
          {field: 'id', title: 'ID', width: 80},
          {field: 'username', title: '用户名', width: 120},
          {field: 'email', title: '邮箱'},
          {field: 'phone', title: '手机'},
          {field: 'status', title: '状态', width: 80},
          {field: 'operate', title: '操作', toolbar: '#operateTpl', width: 160},
        ]],
      });

      // 监听工具条
      table.on('tool(test)', function(obj){
        var data = obj.data;
        if(obj.event === 'edit'){
          // 编辑操作
          layer.msg('编辑 ID:'+ data.id);
        } else if(obj.event === 'del'){
          // 删除操作
          layer.confirm('确定删除 ID 为 '+data.id+' 的数据吗?', function(index){
            obj.del();
            layer.close(index);
          });
        }
      });
    });
  </script>

  <script type="text/html" id="operateTpl">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  </script>

</body>
</html>

上述代码中,我们使用 layui.table 组件来展示表格数据,包括以下几个步骤:

  1. 引入 layui 的 CSS 和 JS 文件。
  2. 在 HTML 中添加一个空的 <table> 元素,并指定其 idlay-filter 属性。
  3. 使用 layui.use() 方法加载 layui.table 模块,并在回调函数中获取 table 对象。
  4. 使用 table.render() 方法渲染表格,其中 elem 属性指定表格元素的选择器,url 属性指定获取数据的 URL,cols 属性指定表头和列属性。
  5. 使用 table.on() 方法监听表格中的工具条,包括编辑和删除操作。
  6. 在 HTML 中添加一个隐藏的模板元素,用来定义工具条的 HTML 结构。

更多用法

除了基本用法外,layui.table 还支持一些高级用法,包括分页、排序、筛选、合并等功能。具体用法可以参考 layui.table 的官方文档。

### 如何在 Layui 表格中设置单元格的值 为了实现在 Layui 的 `table` 组件中动态修改特定单元格的内容,可以利用 JavaScript 来操作表格的数据源并触发重新渲染。具体方法如下: #### 方法一:更新缓存数据并通过重载刷新视图 当需要更改某个具体的单元格内容时,可以通过访问 `layui.table.cache[tableId]` 获取当前显示的所有行对应的原始 JSON 数据数组[^2]。 假设要改变某一行某一列的具体数值,则先定位到目标位置再做相应调整。之后调用 `table.reload()` 函数来强制组件依据最新的数据集重新绘制整个表格结构,从而达到视觉上的即时反馈效果。 ```javascript // 假设 tableId 是你的表格 ID var Data = layui.table.cache['yourTableId']; // 修改指定索引处的数据项(这里假定是从0开始计数) Data[someIndex]['someField'] = newValue; // 调用 reload 进行页面刷新 layui.table.reload('yourTableId', { data: Data, }); ``` 这种方法适用于批量编辑场景或是希望保持原有分页状态的情况下应用变更。 #### 方法二:直接操纵 DOM 结构 如果仅需针对单个或少数几个特殊案例执行快速修正而不影响其他部分的表现形式的话,也可以考虑采用 jQuery 或者原生 JS 对应的方式去查找对应 `<td>` 元素节点进而替换其内部 HTML 文本片段。 不过需要注意的是这种方式不会同步至后台数据库层面以及前端框架维护的状态机之中,因此建议谨慎选用此方案除非确实没有必要保存这些临时改动。 ```html <!-- 示例HTML --> <table id="demo" lay-filter="test"></table> <script type="text/html" id="barDemo"> {{# if(d.city === '北京'){ }} <button class="layui-btn layui-btn-xs">查看</button> {{# } }} </script> <script> // ... 初始化表格代码 ... // 使用纯JS方式找到并修改第一个城市的名称为'上海' document.querySelector('#demo tr:first-child td[data-field="city"]').innerText='上海'; </script> ``` 以上两种途径均可满足不同业务逻辑下的需求,在实际开发过程中可根据具体情况灵活选取最合适的解决方案[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值