我目前正在拥有包含一些数据的数据表。问题如下: 为了避免共有91行,我们将分页设置为每页10行。这给了我们10页,最后一页只有1行。
我使用DataTables API中的.ajax.reload()方法刷新表,每当我对其进行任何更改时,我都会通过" keepPage"参数为true表示如果我在第5页上编辑了某些东西,在服务器端处理之后,我的数据仍然会加载第5页。
然而,当我在最后一页上只有1行并且删除该行时问题就出现了。我的表在第10页刷新,因为它上面没有更多内容,它会显示一个空表。
如何将此案例中的页面更改为上一页?
答案 0 :(得分:1)
在使用ajax.reload()
重新加载之前,使用page.info()
获取有关该表的分页信息。
然后执行以下计算。
var table = $('#example').DataTable();
// Get paging information
var info = table.page.info();
// Number of deleted rows
var numDeleted = 1;
// Calculate number of pages after deleting rows
var numPagesAfter = Math.ceil((info.recordsDisplay - numDeleted)/info.length);
// If number of pages after deleting rows is less than total number of pages
// and the last page is displayed
if(numPagesAfter < info.pages && info.page === (info.pages - 1)){
// Go to previous page using zero-based index
table.page(numPagesAfter - 1);
}
// Reload table
table.ajax.reload();