2017-03-25 2 views
0

Ich verwende jquery Datentabelle, um Daten anzuzeigen. Ich passe die Auslagerungsfunktion an. Zum Beispiel hat jede Seite 10 Einträge. Zuerst nehme ich 10 Einträge. Wenn der Benutzer auf die Schaltfläche Next klickt, nimmt meine Funktion mehr als 10 Datensätze an. Wenn der Benutzer auf die Schaltfläche "Zurück" klickt, dann speichert meine Funktion die letzte Seite. Denn wenn der Benutzer auf die Schaltfläche "Weiter" klickt, werden die gleichen Datensätze nicht erneut abgerufen. Vorhandene Datensätze werden angezeigt. Somit treten dieselben Datensätze nicht auf. Aber wenn der Benutzer nie auf die Zurück-Schaltfläche geklickt hat. Und zum Beispiel auf Seite 3, wenn Benutzer column sortieren und dann Tabelle zeigen erste Seite ohne Speichern der letzten Seitennummer. Wenn der Benutzer auf "Weiter" klickt, werden die gleichen Datensätze noch einmal abgerufen. Und dieselben Aufzeichnungen werden auf dem Tisch angezeigt. So dass ich die letzte Seitennummer speichern muss, nachdem ich column in der jquery Tabelle sortiert habe. Ich suchte dieses Problem, um eine Lösung zu finden. Ich finde Lösungen nur wie wie folgt:Speichern Sie die letzte Seitenzahl nach dem Sortieren der Spalte in Jquery Datatable

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

Wie kann ich letzte Seitenzahl zu speichern, nachdem coloumn Sortierung (wegen zeigt erste Seite). Und wie kann ich diese letzte Seitennummer auf einer Variablen speichern, wenn ich Daten vom Server abrufe?

Antwort

0

Im folgenden Beispiel werden die aktuellen und die vorherigen Seitennummern zu den Anforderungsdaten hinzugefügt, die an den Server gesendet werden.

$(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; 
     } 
    }); 
}); 

Auf der Server-Seite, wenn Sie PHP verwenden, können Sie die neuen Anforderungsparameter Sie wie folgt hinzugefügt Zugang:

<?php 

$currentPage = $_POST['currentPage']; 
$previousPage = $_POST['previousPage']; 

?> 
Verwandte Themen