You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中Yajra Datatable自定义lengthMenu刷新后保持选中状态

解决Yajra Datatable页面刷新后保留lengthMenu选中状态的问题

实现思路

用浏览器的localStorage存储用户选择的条目数,初始化表格时读取该值作为默认条目数,同时监听条目数变化事件更新存储值,确保刷新或返回页面时状态保留。

具体代码实现

  1. 初始化Datatable时配置自定义lengthMenu并读取本地存储值:
// 从localStorage获取已保存的条目数,默认值设为10
var savedLength = localStorage.getItem('datatable_length') || 10;

var oTable = $('#table').DataTable({
    // 保留你原有的其他配置项
    lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "全部"]], // 自定义条目选项列表
    pageLength: parseInt(savedLength), // 设置默认显示条目数为存储的值
    // 监听表格绘制事件,保存当前选中的条目数
    drawCallback: function(settings) {
        var currentLength = settings._iDisplayLength;
        localStorage.setItem('datatable_length', currentLength);
    }
});
  1. 保留你原有的筛选按钮逻辑:
$('#btn-filter').on('click', function(e) {
    oTable.draw();
    e.preventDefault();
});

补充说明

  • 若希望仅在浏览器会话期间保留状态(关闭浏览器后清空),可将localStorage替换为sessionStorage。
  • 确保datatable_length这个存储key在项目中唯一,避免和其他功能的存储数据冲突。
  • 初始化时需把存储的字符串转为数字,因为localStorage仅支持存储字符串类型。

内容的提问来源于stack exchange,提问作者Vajahat Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:50:37