引导表服务器端分页的自定义参数

Posted

技术标签:

【中文标题】引导表服务器端分页的自定义参数【英文标题】:Custom parameters for bootstrap-table server side pagination 【发布时间】:2020-08-24 16:09:42 【问题描述】:

我有一个使用 Spring Boot 创建的服务,我正在尝试使用 bootstrap-table 库来显示它的数据。

我的服务允许使用查询参数?page=x&size=y 进行分页,其中page 从0 开始。

查询的响应返回如下所示的内容:


  "_embedded": 
    "catalogueOrders": [ .... ]
  ,
  "page": 
    "size": 20,
    "totalElements": 11,
    "totalPages": 1,
    "number": 0
  

_embedded.catalogueOrders 包含所有数据,page 包含总计。

我尝试如下配置我的表:

$('#orderTable').bootstrapTable(
    url: "http://localhost:8088/catalogueOrders?orderStatus=" + orderState,
    columns: [
        
            field: 'orderId',
            title: 'Order ID'
        ,
        
            field: 'priority',
            title: 'Priority'
        
    ],
    pagination: true,
    sidePagination: 'server',
    totalField: 'page.totalElements',
    pageSize: 5,
    pageList: [5, 10, 25],
    responseHandler: function(res) 
        console.log(res)
        return res["_embedded"]["catalogueOrders"]
    
)

这能够检索和显示数据,但是它返回所有结果,显然是因为它不知道如何应用分页。似乎也没有检索到总元素,因为表格显示Showing 1 to 5 of undefined rows。另外,如果我将responseHandler 替换为dataField: '_embedded.catalogueOrders',则不再显示数据。

如何配置分页所需的查询参数?

当我尝试配置 dataFieldtotalField 时,我做错了吗?

【问题讨论】:

【参考方案1】:

想通了:

不确定dataFieldtotalField 出了什么问题,但它似乎不适用于嵌套字段。为了解决这个问题,我将响应格式化为 responseHandler 内的一个新对象:

dataField: 'data',
totalField: 'total',
responseHandler: function(res) 
    return 
        data: res["_embedded"]["catalogueOrders"],
        total: res["page"]["totalElements"]
    

关于查询参数,bootstrap-table默认提供limitoffset参数。要对其进行自定义并转换为sizepage,就像我的情况一样,可以提供queryParams 函数:

queryParams: function(p) 
    return 
        page: Math.floor(p.offset / p.limit),
        size: p.limit
    

【讨论】:

【参考方案2】:

是的,它不适用于嵌套字段。如果您想使用嵌套字段,请尝试使用 sass 代码(获取编译器,只需在网上搜索,网上有很多帖子)。 二,我不确定你在说什么,但你可以设置一个css变量

:root
  /*assign variables*/
  —-color-1: red;
  —-color-2: blue;


/*apply variables

p 
  color: var(-—color-1):


您可以在网络上找到大量关于此的信息。

【讨论】:

在这种情况下 CSS 有什么帮助?

以上是关于引导表服务器端分页的自定义参数的主要内容,如果未能解决你的问题,请参考以下文章

引导表服务器端分页

如何在引导表中使用带有 ajax 的服务器端分页?

带有后端分页的 jQuery 数据表

ag-grid-community:服务器端分页的无限行模型,社区免费版 agGrid - 不像服务器端分页那样工作

s-s-rS报表中服务器端分页的逻辑是啥

使用 DataTables 插件的服务器端分页