bootstrap-table getData获取存在隐藏行的本页数据不完整,分页错误

Bootstraptable version(s) affected

1.21.2

Description

data-side-pagination="client";data-pagination="true"时,按示例总共有21条数据,使用hideRow隐藏掉index>=0 and index<=6的数据后,本页只剩下3条数据后续数据不会填充进本页,并且调用$table.bootstrapTable('getData', {useCurrentPage: true, includeHiddenRows: false})也只会获取到本页剩余的3行数据(不知道会不会是我对该方法理解有误,我预期的结果应该是会获取到未隐藏的行中前pageSize条数据)。除此以外,此时分页信息里显示总共剩余14行数据,然而实际上只会显示出里第一页3行数据和第二页4行数据

Example(s)

https://live.bootstrap-table.com/code/Kkunyue/14185

Possible Solutions

getData方法中过滤隐藏行和截取分页数据的执行顺序应该反了,调换顺序之后达到预期效果

{
      key: "getData",
      value: function getData(params) {
        ..............................
        if (params && params.useCurrentPage) {
          data = data.slice(this.pageFrom - 1, this.pageTo);
        }
        //将上面的分页截取和下面的隐藏行过滤调换顺序达到预期效果
        if (params && !params.includeHiddenRows) {
          var hiddenRows = this.getHiddenRows();
          data = data.filter(function (row) {
            return Utils.findIndex(hiddenRows, row) === -1;
          });
        }
        .............................
        return data;
      }
    },

至于最后7条消失的原因和修改办法参考https://blog.csdn.net/sinat_29279767/article/details/129010081

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bootstrap Table 可以通过 AJAX 请求从后端获取数据并在表格中显示。下面是一些实现的步骤: 1. 在 HTML 页面中引入 Bootstrap Table 插件的 CSS 和 JS 文件。 ```html <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap-table/1.18.3/bootstrap-table.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap-table/1.18.3/bootstrap-table.min.js"></script> ``` 2. 创建一个 HTML 表格,并定义每一列的名称和字段名。 ```html <table id="table"> <thead> <tr> <th data-field="id">ID</th> <th data-field="name">Name</th> <th data-field="price">Price</th> </tr> </thead> </table> ``` 3. 初始化表格,并配置 AJAX 请求参数。 ```javascript $(function () { $('#table').bootstrapTable({ url: '/path/to/server', // 后端 API 地址 method: 'get', // 请求方法 dataType: 'json', // 返回数据类型 pagination: true, // 启用分页功能 sidePagination: 'server', // 分页位置,此处为服务器端分页 queryParams: function (params) { // 自定义查询参数 return { limit: params.limit, // 每页显示的记录数 offset: params.offset, // 当前页码 search: params.search // 搜索关键字 }; }, responseHandler: function (res) { // 自定义响应处理函数 return { total: res.total, // 总记录数 rows: res.data // 当前页记录列表 }; }, columns: [{ field: 'id', title: 'ID' }, { field: 'name', title: 'Name' }, { field: 'price', title: 'Price' }] }); }); ``` 4. 在后端编写 API 接口,接收请求参数并返回 JSON 格式的数据。 ```php // 获取请求参数 $limit = $_GET['limit']; $offset = $_GET['offset']; $search = $_GET['search']; // 查询数据库,获取数据列表和总记录数 // ... // 返回 JSON 格式的数据 echo json_encode([ 'total' => $total, 'data' => $data ]); ``` 这样就可以通过 AJAX 请求从后端获取数据并在表格中显示了。需要注意的是,后端 API 必须返回 JSON 格式的数据数据格式要与响应处理函数中返回的格式一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值