layui表格删除本页数据,如果有数据停留在当前页,如果没数据就跳到上一页

1、需求:layui表格删除本页数据,如果有数据停留在当前页,如果当前页没数据就跳到上一页

2、修改layui框架中的table.js

if (curr > 1 && res.data.length === 0) {
        that.pullData(curr - 1);
      }

一定要加在我标注的那个位置,因为下面的params[request,pageName] = curr;这段代码已经用到curr这个变量了,所以我们要在他使用之前就处理好,否则不会生效,下面的也都是无用功!!!!!!!!

原理: layui无论是刷新,还是删除行数据刷新表格,还是新增刷新表格,都会执行重新加载table表格数据,那么我们就可以从这里入手,当加载数据的时候,我们就判断一下当前页是否有数据,如果没有,就把当前页的页码减一,如果有数据就不减一。这样就能满足需求中的其一,即:编辑新增之后,停留在当前页面,但是这样知识页码变了,但是页面还是没有数据,举个例子,在以上修改后,我有5页的数据,删除第5页的数据,那么,我们的页码会停留在第四页,但是加载数据的时候,还是没有数据,是因为,这里只是修改了分页的页码,而没有修改加载数据的页码,所以我们就需要再来一步操作,废话不多说,直接上代码,上图:

if(res.data.list.length==0){
     _this.getList()
}

加入这段代码的意思是,每次刷新列表,调用这个接口的时候,因为页面数据加载已经完成,显示无数据,分页的页码已经改变了,但是慢了一步,所以我们需要再次调用一下这个方法,把数据渲染上去。

到此为止,扣了两天的东西,就这两段代码就解决了,做个笔记给自己攒一下知识储备。心累!准备准备下班了!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
可以通过监听 layui的分页组件的页码变化事件,当页码变化时,发送请求获取当前页数据,如果当前页数据,则将分页组件的页码设置为上一页,并重新发送请求获取上一页数据。如果上一页数据,则显示“无数据”提示。以下是示例代码: ```javascript // 监听分页组件的页码变化事件 layui.use(['table', 'laypage'], function(){ var table = layui.table; var laypage = layui.laypage; // 渲染表格 table.render({ // ... page: true, // ... }); // 监听分页组件的页码变化事件 laypage.on('pageChanged', function(obj){ // 发送请求获取当前页数据 $.ajax({ url: '/api/getData', data: { page: obj.curr, limit: obj.limit }, success: function(res){ // 判断当前页是否有数据 if (res.data.length > 0) { // 渲染表格 table.reload('tableId', { data: res.data, page: { curr: obj.curr } }); } else { // 当前页数据,回退到上一页 if (obj.curr > 1) { laypage.render({ elem: 'page', count: res.totalCount, limit: obj.limit, curr: obj.curr - 1, jump: function(obj, first){ if (!first) { // 重新发送请求获取上一页数据 $.ajax({ url: '/api/getData', data: { page: obj.curr, limit: obj.limit }, success: function(res){ // 判断一页是否有数据 if (res.data.length > 0) { // 渲染表格 table.reload('tableId', { data: res.data, page: { curr: obj.curr } }); } else { // 上一页数据,显示“无数据”提示 table.reload('tableId', { data: [], page: { curr: obj.curr, count: 0 } }); } } }); } } }); } else { // 当前页和上一页数据,显示“无数据”提示 table.reload('tableId', { data: [], page: { curr: obj.curr, count: 0 } }); } } } }); }); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值