layui table数据表格reload where参数保留问题

本文探讨了在使用layui数据表格组件时,如何妥善处理reload函数的where参数问题,避免搜索条件在分页时丢失,同时确保分页功能正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

layui table数据表格reload where参数保留问题

在使用layui过程中多多少少会遇到些问题
table reload 有个坑:reload时where参数会保留上次的参数,如果用

done: function(res, curr, count){ this.where={};}

来处理,默认的表格分页会把第一次请求的参数去掉。两者遇到些冲突。
用下面的方式来解决:

var tableIns = table.render({
      elem: '#test-table-toolbar' //绑定table表格
      // ,url: '/api/mockrecord/findByRPID?rpid=100002'
      ,url: '/api/bug/findAllPageInfo?project_name='+project_name
      ,toolbar: '#test-table-toolbar-toolbarDemo'
      ,title: '用户数据表'
      //,height:500

        //不建议这样使用,建议直接返回Map
        /*,parseData: function(res){ //res 即为原始返回的数据
          return {
              "code": 0, //解析接口状态
              "msg": "hint message", //解析提示文本
              "count": 10, //解析数据长度
              "data": res //解析数据列表
          };
        }*/

        /*
        ,request: {
            pageName: 'curr' //页码的参数名称,默认:page
            ,limitName: 'nums' //每页数据量的参数名,默认:limit
        }*/

      ,cols: [[
        // {type: 'checkbox', fixed: 'left'},

        {field:'bug_key', title: '关键字', width: 150,fixed: 'left'}

        ,{field:'bug_summary', title:'概要', width:600, unresize: true/*, sort: true*/}
        ,{field:'bug_labels', title:'模块', width:100, sort: true}
        ,{field:'bug_labels', title:'类型', width:100, sort: true}

        ,{field:'bug_assigneedisplayname', title:'经办人', width:100,  templet: function(res){
          return '<em>'+ res.bug_assigneedisplayname +'</em>'
        }}
        ,{field:'bug_reporterdisplayname', title:'报告人', width:100,  templet: function(res){
                    return '<em>'+ res.bug_reporterdisplayname +'</em>'
                }}
        ,{field:'bug_priority', title:'优先级', width:100, /*, sort: true*/}
        ,{field:'bug_status', title:'状态', width:100}


        ,{field:'bug_createddate', title:'创建日期',width:100,templet: '<div>{{ layui.laytpl.toDateString(d.bug_createddate) }}</div>'}
        ,{field:'bug_updateddate', title:'已更新',width:100,templet: '<div>{{ layui.laytpl.toDateString(d.bug_createddate) }}</div>'}
        ,{field:'bug_duedate', title:'到期日',width:100,templet: '<div>{{ layui.laytpl.toDateString(d.bug_createddate) }}</div>'}
        ,{fixed: 'right', title:'操作', toolbar: '#test-table-toolbar-barDemo', width:150}
      ]]
      ,page: true
      ,limit: 50
      ,limits: [50, 100, 150]
      // ,layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']
      ,jump: function(obj, first){
        if(!first){
            layer.msg('第 '+ obj.curr +' 页');
        }
      }
    });

使用table的实例化对象来reload

tableIns.reload({
              page: {
                  curr: 1 //重新从第 1 页开始
                  ,limit:50
              }
              , method:'POST'
              ,url: '/api/bug/findAllBugsBySearchCondition'
              ,where: formData
              ,contentType: 'application/json'
              //,height: 300
              ,done: function(res, curr, count){
                  //this.where={};
                  //不清空,有问题:搜索条件会保留
                  //清空,  有问题:分页的时候没有搜索条件了,分页会受到影响
              }
          });

转载于:https://www.cnblogs.com/xidianzxm/p/10786140.html

### 回答1: 根据您提供的信息,我可以猜测您在使用Layui框架中的数据表格组件。如果您在使用table.reload方法之前没有选择数据,那么重新加载数据表格会出现没有数据的情况。 要解决这个问题,您可以在调用table.reload方法之前选择数据。您可以使用table.reload方法的第二个参数来传递额外的参数,其中包括数据筛选条件。例如,您可以在选择数据使用layFilter选项来指定要筛选的元素,并使用where选项来指定筛选条件。然后,将这些选项作为table.reload方法的第二个参数传递即可。 以下是一个示例代码片段,可以帮助您了解如何在Layui数据表格中选择和重新加载数据: ``` // 选择数据 table.reload('tableId', { where: { // 筛选条件 field: value }, page: { curr: 1 // 重新加载第一页数据 } }); // 重新加载数据 table.reload('tableId'); ``` 希望这可以帮助您解决问题! ### 回答2: Layui数据表格是一款简单易用的前端表格插件,而table.reload是该插件提供的一个方法,用于重新加载表格数据。 根据您的问题描述,使用table.reload方法之前选中的数据没有了。造成这种情况的可能原因有以下几点: 1. 数据重新加载:当调用table.reload方法,会重新加载表格数据,默认会清空之前的选中状态。因此,如果在重新加载之前有选中的数据,则在重新加载后会失去选中状态。 2. 选中状态未保存:Layui数据表格默认不会保存表格选中状态,如果需要保存选中状态,可以通过自定义实现存储和恢复选中状态的逻辑。 针对这个问题,可以尝试以下两种解决方法: 1. 使用自定义存储选中状态的方法:在table.reload方法调用之前,将当前表格选中的行数据保存到一个数组或者其他存储方式中。在重新加载数据后,根据之前保存的选中数据,重新设置表格的选中状态。 2. 使用表格的on方法:Layui数据表格提供了on方法,可以监听表格的各种事件。可以使用on方法,在数据重新加载之后,自动设置之前选中的数据为选中状态。 综上所述,使用Layui数据表格table.reload方法重新加载数据,之前选中的数据会被清空。如果需要保留选中状态,可以通过自定义存储和恢复选中状态的逻辑来实现。 ### 回答3: Layui数据表格table.reload()方法是用来重新加载数据的,它会将当前表格中的数据清空,并重新数据渲染表格。因此,如果在调用该方法之前选中了某些数据,重新加载后这些数据会消失。 解决这个问题有以下几种方法: 1. 保存选中的数据:在调用table.reload()方法之前,将选中的数据保存到一个变量中,等重新加载数据完成后,再将保存的数据重新选中。 2. 使用缓存机制:在选中数据,将数据保存在缓存中(例如LocalStorage),重新加载数据后,再从缓存中获取数据重新选中。 3. 使用分页加载:如果表格数据较多,可以考虑使用分页加载的方式,重新加载数据只加载当前页的数据,这样就不会出现数据消失的问题。 无论采用哪种方法,都需要在重新加载数据后手动重新选中之前选中的数据,因为重新加载数据会导致表格重新渲染,选中状态会丢失。 总之,要保持之前选中的数据不消失,我们需要在重新加载数据后重新选中数据,可以通过保存数据、使用缓存机制或者使用分页加载等方式来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值