layui数据表格 分页 刷新页面,并更新网址

博客讲述了在使用layui数据表格时遇到的点击分页无法刷新页面和更新URL的问题。作者通过百度搜索找到解决方案,即监听分页按钮点击事件,但此方法只能刷新页面。最终,作者通过修改layui的table.js源码,实现了分页切换时更新URL并正确加载对应页面数据。解决方案包括禁用table.render的内置分页,使用laypage.render进行自定义分页,并在table.js中调整分页逻辑。
摘要由CSDN通过智能技术生成

近期用到layui的数据表格,感觉非常好用。。

但是有一个问题,就是点击分页时不能刷新页面,也不能更新网址。

 

经过一番百度,有说到 使用

$(".layui-laypage-btn").click() 

 来解决,但是这个方法,我只能刷新页面,但不能更新网址,不知道是我哪里做的不对?

最后自己思索出了解决方法:

1. 首先 不要用table.render的分页 

        注意查看代码注释

table.render({
      elem: '#demo'
        , url: '...' 
        // , page: true                    / 此处不使用分页
        , currpage: getUrlParam('page')    // 获取url的当前页
        , limit: 15                        // 分页数量要和下面的分页配置一样
        , cols: [[ 
            { checkbox: true }
            , { field: 'id', title: '序号', width: 60 }
            }
        ]]
    });

 

2.使用laypage.render        

laypage.render({
    elem: 'test1' 
    , curr: getUrlParam('page')    // 从网址获取当前页
    , limit: 15                    // 分页数量
    , jump: function (obj, first) {    
          if (!first) {
              window.location.href = '/code.html?page=' + obj.curr + '&limit=' + obj.limit
          }
      },
});

 

到这里为止,点击已经网址能切换,但是数据始终 是第一页,这是因为table.js 将加载的page参数写4在第一页

3. 最后就是修改table.js ,将page改为当前页

1.  可以进入JS/HTML格式化 - 站长工具 格式化table.js

2. 在104行加上 i.page()

F = function(e) {
        var i = this;
        i.index = ++d.index,
        i.config = t.extend({},
        i.config, d.config, e),
        i.render();
        i.page()   // 加加加
    };

3. 在338行将 F.prototype.page 默认的1 改为当前网址的当前页即可

// F.prototype.page = 1;
    F.prototype.page = function(){
        var page = getUrlParam('page') ? getUrlParam('page') : 1;
        return page;
    },

 最后附上getUrlParam方法

function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 
    var r = window.location.search.substr(1).match(reg); 
    if (r != null) return decodeURI(r[2]); return null; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值