侧边栏壁纸
博主头像
云BLOG 博主等级

行动起来,活在当下

  • 累计撰写 318 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
WEB

让Layui表格在初始化时不自动获取数据

Administrator
2025-09-30 / 0 评论 / 0 点赞 / 6 阅读 / 0 字

要让Layui表格在初始化时不自动获取数据,核心方法是不设置 url 参数,然后在需要时通过 table.reload 方法动态加载。具体做法如下:

核心配置步骤

  1. 初始化表格时不设置 url:在 table.render 的配置项中,不要填写 url。没有 url,表格就不会在渲染时自动请求数据。

  2. 手动触发数据加载:在需要加载数据的时候(例如,点击按钮、完成某些选择后),通过 table.reload 方法,并在这个时候指定 url 和其他必要的参数(如查询条件)。

代码示例

以下是一个简单的代码示例,演示如何实现:

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

  // 初始渲染表格,不设置 url,表格不会自动加载数据
  table.render({
    elem: '#batchTabel',
    id: 'batchTabel', // 赋予一个id,便于后续reload
    method: 'post',
    // 注意:此处故意不设置 url
    cols: [[
      { field: 'id', title: 'ID' },
      { field: 'name', title: '姓名' }
      // ... 你的列配置
    ]],
    page: true // 根据需要开启分页
  });

  // 示例:在某个按钮点击事件中手动加载数据
  $('#yourButton').click(function() {
    table.reload('batchTabel', { // 此处使用表格的 id
      url: '/Sales/Batch', // 此时才设置后端接口地址
      where: { // 可以附加额外的查询参数
        key: 'value'
      }
    });
  });
});

关键配置说明

  • id: 'batchTabel':在初始渲染时,为表格设置一个唯一的 id。这个 id 在后续使用 table.reload 方法刷新表格数据时至关重要。

  • table.reload:这个方法用于重载表格数据。第一个参数是表格的 id,第二个参数是新的配置项,你可以在其中指定之前未设置的 url 以及 where 等条件。

补充说明

  • 关于分页:如果你的表格需要分页,即使在手动加载数据时,Layui表格的分页参数(page, limit)也会在 table.reload 时自动发送到后端。你只需要确保后端接口能正确处理这些分页参数。如果初始数据为空,也可以考虑先不显示分页,待有数据后再显示,这通常需要后端配合返回总记录数 count

  • 数据格式:当通过 url 加载数据时,请确保后端返回的JSON数据格式符合Layui表格的规范。如果你的返回数据格式与Layui默认格式不同,你可能需要在 table.render 配置中使用 parseDataresponse 进行解析和映射。

table.render({
  // ... 其他配置
  parseData: function(res) { // 解析数据
    return {
      "code": res.code, // 解析状态码
      "msg": res.msg,   // 解析提示文本
      "count": res.count, // 解析数据长度
      "data": res.data    // 解析数据列表
    };
  },
  response: { // 定义后端json格式
    statusName: 'code',  // 状态字段名称
    statusCode: 200,     // 成功状态码,默认为0
    countName: 'count',  // 总数字段名称
    dataName: 'data'     // 数据字段名称
  }
});

0

评论区