Layui Table 搜索后 emptyText 不生效的解决方案 为什么 Layui Table 搜索后空数据不显示 emptyText? 许多开发者在初次遇到此问题时,通常会检查配置项。实际上,这并非配置错误,而是框架自身的机制所致。emptyText 配置项仅在表格初次加载且无数据时生效。当
许多开发者在初次遇到此问题时,通常会检查配置项。实际上,这并非配置错误,而是框架自身的机制所致。emptyText 配置项仅在表格初次加载且无数据时生效。当数据加载完成后,无论通过搜索过滤出的结果是否为空,Layui 默认都不会再次触发该空文本提示。
done 回调中手动判断数据长度,并操作对应的 DOM 元素。emptyText 对过滤后的空状态完全无效,无需再在此配置上耗费时间。.layui-table-view)内部并未为搜索后的空状态预留占位区域,因此需要开发者自行处理。关键在于 table.render() 的 done 回调函数。我们需要在此判断返回的数据,并动态替换表格体内容。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
$(elem).next('.layui-table-box').find('.layui-table-body tbody')。res.data 数组长度是否为 0。.html('...') 方法一次性替换,而非 .append()。layui-table-empty。done: function(res, curr, count) {
const $tbody = $(this.elem).next('.layui-table-box').find('.layui-table-body tbody');
if (res.data.length === 0) {
$tbody.html('未找到匹配项,请调整关键词 ');
}
}
这是另一个常见问题。即使按照上述方法编写了 done 回调,搜索时空状态提示仍可能时有时无。问题通常出在数据重载环节。
table.cache 或过滤数组实现搜索,则必须确保手动调用 table.reload() 以触发视图更新,且 done 回调能成功执行。更直接的方法是使用过滤后的新数组,重新调用一次 table.render({ data: filteredData })。data: [],且 table.reload() 配置中包含已定义好的 done 回调函数。table.render 中定义了 done,但在调用 table.reload() 时未同步传递该回调函数,导致搜索后回调失效,空状态无法显示。解决显示问题后,还需关注美观与体验。直接插入的 总之,Layui 表格的空状态管理并非“配置即所得”的功能,而是一个需要“主动检查、主动干预”的过程。整个链路中最易断裂的环节往往在数据变更时:要么是搜索重载未同步回调函数,要么是前端过滤后未触发视图重绘——一旦此处断裂,空状态提示便会彻底失效。 侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述 单元格样式可能与表格设计不协调。
style="text-align: center; padding: 40px 0; color: #999;",可快速实现居中、留白及浅色文字效果。 或 等可获取焦点的元素。否则用户使用键盘 Tab 键切换焦点时,可能“卡”在此处,影响体验。event.stopPropagation() 阻止事件冒泡,以免点击按钮意外触发表格行点击事件,导致非预期行为。colspan 的值必须与当前表格列数严格一致,否则会引起布局错乱。动态获取列数是良好习惯,例如使用前述示例中的 this.cols.length。同类更新
更多
热游推荐
更多