Layui数据表格重载与搜索功能实现详解

作者:资源驿站时间:2026-10-23 09:57:19浏览:105

本文详细讲解如何在Layui框架中实现数据表格的重载功能,重点演示如何通过点击事件触发搜索并刷新表格数据。通过HTML结构配置与JavaScript代码结合,展示如何传递搜索参数、重置分页并获取后端接口数据,帮助开发者快速掌握动态表格交互技巧。

Layui数据表格重载与搜索功能实现详解

本文介绍如何使用Layui框架实现数据表格的重载功能,并以常见的搜索场景为例进行说明。

  • 首先需要完成数据表格的基础加载配置。
  • 接着实现搜索交互逻辑,并在触发时执行数据表格的重载操作。
  • 以下是完整的代码示例。

数据表格基础加载

第一步是初始化并加载数据表格。

具体实现需参考Layui官方文档提供的示例代码。

HTML部分负责定义表格容器。


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

JavaScript部分负责处理表格渲染逻辑。


var table = layui.table;
 
//执行渲染
table.render({
 elem: '#demo' //指定原始表格元素选择器(推荐id选择器)
 ,height: 315 //容器高度
 ,cols: [{}] //设置表头
 //,…… //更多参数参考右侧目录:基本参数选项
});

官方文档已对核心方法进行了详细说明,此处直接展示实际应用的实例用法。HTML部分可参照官方文档标准写法,无需额外修改。


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

    table.render({
      // 表格容器ID
      elem: '#ware_info'
      // 表格ID,必须设置,重载部分需要用到
      , id: 'tableOne'
      // 数据接口链接
      , url: "异步请求数据接口地址"
      // 附加参数,post token
      , where: {'token': token}
      , method: 'post'
      // 分页 curr起始页,groups连续显示的页码,默认每页显示的条数
      , page: {
        layout: ['limit', 'count', 'prev', 'page', 'next', 'skip']
        , curr: 1
        , groups: 6
        , limit: 20
      }
      , cols: [[
        {fixed: 'lift', title: '序号', type: 'numbers', minWidth: 60, align: 'center',}
        , {field: 'part', title: '类型', align: 'center', width: 120}
        , {field: 'uid', title: 'UID', align: 'center', width: 200, sort: true, event: 'details', style: 'color: #0066CC; cursor:pointer;'}
        , {field: 'quantity', title: '数量', width: 120, align: 'center', event: 'setNumber', style: 'color: #0066CC; cursor:pointer;'}
        , {field: 'description', title: '描述', align: 'center', minWidth: 80}
        , {field: 'disable', title: '状态', sort: true, width: 80, align: 'center',}
      ]]
    });
  });

搜索功能与表格重载实现

接下来重点实现搜索功能及对应的表格重载逻辑。

1、接口需求 后端需提供一个能够接收搜索条件参数,并返回固定格式JSON数据的数据接口。

2、注意要提前导入layui的依赖模块

JavaScript部分代码如下:


// 执行搜索,表格重载
  $('#do_search').on('click', function () {
    // 搜索条件
    var send_name = $('#send_name').val();
    var send_data = $('#send_data').val();
    table.reload('tableOne', {
      method: 'post'
      , where: {
        'token': token,
        'send_name': send_name,
        'send_data': send_data,
      }
      , page: {
        curr: 1
      }
    });
  });

完整代码示例。

HTML结构部分。


<table class="layui-hide" id="ware_info" lay-filter="tableOne"></table>

JavaScript逻辑部分。


// 加载表格
  layui.use('table', function () {
    var table = layui.table;

    table.render({
      // 表格容器ID
      elem: '#ware_info'
      // 表格ID,必须设置,重载部分需要用到
      , id: 'tableOne'
      // 数据接口链接
      , url: "你的异步数据接口地址"
      // 附加参数,post token
      , where: {'token': token}
      , method: 'post'
      // 分页 curr起始页,groups连续显示的页码,默认每页显示的条数
      , page: {
        layout: ['limit', 'count', 'prev', 'page', 'next', 'skip']
        , curr: 1
        , groups: 6
        , limit: 20
      }
      , cols: [[
        {fixed: 'lift', title: '序号', type: 'numbers', minWidth: 60, align: 'center',}
        , {field: 'part', title: '类型', align: 'center', width: 120}
        , {field: 'uid', title: 'UID', align: 'center', width: 200, sort: true, event: 'details', style: 'color: #0066CC; cursor:pointer;'}
        , {field: 'quantity', title: '数量', width: 120, align: 'center', event: 'setNumber', style: 'color: #0066CC; cursor:pointer;'}
        , {field: 'description', title: '描述', align: 'center', minWidth: 80}
        , {field: 'disable', title: '状态', sort: true, width: 80, align: 'center',}
      ]]
    });

    // 执行搜索,表格重载
    $('#do_search').on('click', function () {
      // 搜索条件
      var send_name = $('#send_name').val();
      var send_data = $('#send_data').val();
      table.reload('tableOne', {
        method: 'post'
        , where: {
          'csrfmiddlewaretoken': token,
          'send_name': send_name,
          'send_data': send_data,
        }
        , page: {
          curr: 1
        }
      });
    });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

作者最新文章