我试图在Spring HATEOAS上使用带有后端的jquery datatables,它返回带有结构的HAL文档:
{
"_embedded": {...},
"_links": {...},
"page": {
"size": 10,
"totalElements": 15,
"totalPages": 2,
"number": 0
}
}
目前我的数据表设置如下:
const table = TABLE_ELEMENT.DataTable({
processing: true,
ordering: false,
serverSide: true,
paging: true,
pagingType: 'numbers',
pageLength: 10,
lengthChange: false,
recordsTotal: 15,
searching: false,
ajax: {
type: 'GET',
url: '/api/employees',
dataSrc: data => data._embedded.employees,
},
columns: [
{data: 'name'},
{data: 'email'},
{data: 'phone'},
{data: 'birthDay'}
]
});
但问题是我无法正确设置我拥有的页数。如果我使用serverSide: true
我的表有无限量的页面,如果我使用serverSide: false
而我的表只有1页。怎么解决这个问题?
要在页面之间切换,我使用代码:
TABLE_ELEMENT.on('page.dt', () => {
table.ajax.url('/api/employees?page=' + table.page.info().page);
});
答案 0 :(得分:0)
为了解决这个问题,我用:{/ p>替换了属性dataSrc
dataFilter: (data) => {
let json = JSON.parse(data);
json.recordsTotal = json.page.totalElements;
json.recordsFiltered = json.page.totalElements;
json.pageLength = json.page.size;
json.data = json._embedded.employees;
return JSON.stringify(json);
}
也是属性
pageLength: 10,
recordsTotal: 15
可以删除