繁体   English   中英

在jQuery Datatable中对列进行排序后保存最后页码

[英]Save The Last Page Number After Sorting Column In Jquery Datatable

我正在使用jquery数据表显示数据。 我自定义分页功能。 例如,每个页面有10条记录。 首先,我的功能记录了10条记录。 如果用户单击下一步按钮,那么我的函数将记录10条以上。 如果用户单击“上一页”按钮,然后我的功能保存最后一页。 因为如果用户单击“下一步”按钮,则不会再次提取相同的记录。 显示现有记录。 因此,不会发生相同的记录。 但是,如果用户从未单击后退按钮。 例如在第3页上,如果用户对列进行排序,然后表格显示首页而没有保存最后一页号。 这样,如果用户单击“下一步”按钮,则该记录将被再次获取一次。 相同的记录将显示在表上。 这样我就必须在对jquery表排序coloumn之后保存最后一页的编号。 我搜索了此问题以找到解决方案。 我发现解决方案仅如下所示:

$('#example').dataTable( {
  stateSave: true
} );

排序排序后(由于显示首页),如何保存最后一页的编号。 当我从服务器获取数据时,如何将最后的页码存储在变量上以供使用。

以下示例将当前页和上一个页码添加到发送到服务器的请求参数中。

$(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'];

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM