Layui数据表格如何实现行工具栏点击后异步获取新数据

月夜之吻

月夜之吻

2026-07-29

210人浏览

原创

layui手机车牌号码键盘代码
layui手机车牌号码键盘代码

layui手机车牌号码键盘代码是一款基于jQuery跟layui制作的手机端车牌号码输入弹出键盘选择,支持新能源汽车车牌输入格式代码。

下载
table.on('tool(filter)') 事件必须在 table.render() 后绑定,filter 值须与 lay-filter 完全一致;常见失效原因包括监听写在 render 前、容器缺失 lay-filter、混淆 tool 与 row 等事件类型;点击后可通过 obj.update 局部更新或 table.reload 全量刷新,并需注意 page.curr、状态同步及错误回滚。

table.on('tool(filter)') 事件绑定必须在 render 之后

行工具栏按钮(如“编辑”“删除”)点击后触发的事件,靠 table.on('tool(filter)', callback) 监听,filter 必须和 table.render({ lay-filter: 'xxx' }) 中的字符串完全一致。常见失效原因:监听写在 table.render() 前、容器没加 lay-filter 属性、或把 tool 误写成 rowevent

示例中若渲染时写了 lay-filter="userTable",那监听就必须是:table.on('tool(userTable)', function(obj){...})。漏掉括号里的字符串匹配,回调函数永远不会执行。

点击按钮后如何发起异步请求并刷新当前行或整表

工具栏点击后通常要拉新数据——比如“审核”按钮点完要更新该行状态,或“详情”按钮要弹窗加载关联数据。关键不是“发请求”,而是“怎么让表格响应变化”:

  • 只改单行显示:用 obj.update({ status: 'approved', statusText: '已通过' }),它会局部重绘该行,不触发全表 reload
  • 刷新整表(含分页/排序状态):调用 table.reload('userTable', { where: { ... }, page: { curr: obj.curr } }),注意必须传 page.curr,否则默认跳回第 1 页
  • 避免重复请求:按钮点击后可先禁用,等接口返回再恢复,例如 $(obj.tr).find('.layui-btn').addClass('layui-disabled')

templet 渲染的按钮如何拿到真实数据 ID

工具栏模板里常写 <button data-id="{{d.id}}">操作</button>,但实际点击时 obj 参数里 obj.data.id 就是原始数据字段,不需要额外从 DOM 取。直接用更安全:

table.on('tool(userTable)', function(obj){<br>  var id = obj.data.id; // 不要用 $(this).data('id')<br>  $.post('/api/approve', { id: id }, function(res){<br>    if(res.code === 0){<br>      obj.update({ status: res.data.status });<br>    }<br>  });<br>});

如果用了 parseData 或后端返回结构嵌套(如 { code: 0, data: [...] }),obj.data 仍是解包后的单行对象,字段名以你配置的 colsfield 为准。

异步请求失败时表格状态怎么保持一致

网络错误或后端报错后,用户看到的还是旧数据,但表格内部状态可能已混乱。最容易被忽略的是:手动调用 obj.update() 后又 reload 整表,会导致刚 update 的临时状态被覆盖。

建议统一处理逻辑:

  • 成功:用 obj.update() 局部更新,或 table.reload() 全量刷新
  • 失败:显式还原字段值,例如 obj.update({ status: oldStatus }),不能只靠 UI 提示
  • loading 状态别只靠按钮禁用——表格行本身可加 class 标记,比如 obj.tr.addClass('loading'),done 回调里再移除

真正麻烦的不是发请求,而是确保视觉、DOM、缓存三者始终对齐。Layui 的 table.cacheobj.data 不自动同步,改了 data 得主动调用 update 或 reload。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

layui

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

1144

4

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

319

5

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.15

1039

5

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.24

918

6

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

0

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

0

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

8

20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 11.4万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 9.7万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.5万人学习