我使用jquery datatable来显示数据。我自定义了分页功能。例如,每页有10条记录。首先,我的函数接受10条记录。如果用户单击“下一步”按钮,则我的函数将获取10个以上的记录。如果用户点击“上一页”按钮,然后我的函数保存最后一页。因为如果用户单击“下一步”按钮,则不会再次拉取相同的记录。将显示现有记录。因此,不会出现相同的记录。但是如果用户从来没有点击过后退按钮。例如,在第3页,如果用户排序列,然后表格显示第一页,而没有保存最后一页的页码。这样,如果用户单击next按钮,之后将再次获取相同记录。同样的记录也会显示在表格上。所以在对列进行排序后,我必须在jquery表中保存最后一个页码。我搜索了这个问题以找到解决方案。我找到的解决方案仅如下所示:
$('#example').dataTable( {
stateSave: true
} );如何在列排序后保存最后一个页码(因为显示首页)。如何将最后一个页码存储在变量中,以便在从服务器获取数据时使用。
发布于 2017-03-26 09:59:43
下面的示例将当前页和以前的页码添加到发送到服务器的请求参数中。
$(document).ready(function() {
//vars
var previousPage = null;
// DataTable
var table = $('#example').DataTable( {
"serverSide": true,
"ajax": {
"url": "yourAjaxDataSource.url",
"type": "POST",
"data": function ( dtData ) {
var info = $('#example').DataTable().page.info();
var currentPage = info.page + 1;
var customData = $.extend( {}, dtData, {
"currentPage": currentPage,
"previousPage ": previousPage
} );
return customData;
}
},
"columns": [
{//1st Column:
"data": "foo" },
{//2nd Column:
"data": "bar" }
],
//this will always be called after the table is drawn
"drawCallback": function( settings ) {
var info = $('#example').DataTable().page.info();
previousPage = info.page + 1;
}
} );
} );在服务器端,如果您使用的是PHP,您可以访问您添加的新请求参数,如下所示:
<?php
$currentPage = $_POST['currentPage'];
$previousPage = $_POST['previousPage'];
?>https://stackoverflow.com/questions/43018020
复制相似问题