更改AJAX数据表的当前页面

时间:2017-10-20 10:46:09

标签: javascript angular datatables

我目前正在拥有包含一些数据的数据表。问题如下: 为了避免共有91行,我们将分页设置为每页10行。这给了我们10页,最后一页只有1行。

我使用DataTables API中的.ajax.reload()方法刷新表,每当我对其进行任何更改时,我都会通过" keepPage"参数为true表示如果我在第5页上编辑了某些东西,在服务器端处理之后,我的数据仍然会加载第5页。

然而,当我在最后一页上只有1行并且删除该行时问题就出现了。我的表在第10页刷新,因为它上面没有更多内容,它会显示一个空表。

如何将此案例中的页面更改为上一页?

1 个答案:

答案 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();