datatables + lengthMenu + All + serverside processing + not working

Ceci est un violon datatables de base. C’est la valeur par défaut et les menus déroulants afficheront les enregistrements suivants Show options 10, 25, 50, 75 and 100 records:

Maintenant, ce que je voudrais faire, c’est le "lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "All"] ] que je peux utiliser dans ce violon . Mais que se passe-t-il si j’utilise le traitement côté serveur, c’est ici que l’option All ne fonctionne pas pour moi. Les autres font. Lorsque je sélectionne All , les données qu’il affiche sont affichées et en bas, No data found in the server

Autant que je sache, la seule différence est que les données proviennent du serveur. Quelqu’un peut-il me dire comment résoudre ce problème? Autant que je sache quand je sélectionne All , j’envoie une length:-1 et pour 10 c’est une length:10 donc je ne sais pas pourquoi All ne fonctionne pas.

  $(document).ready(function() { var dataTable = $('#employee-grid').DataTable( { "lengthMenu" : [[ 10, 25, 50, -1 ],[ '10', '25', '50', 'All' ]], //"pageLength": 25, "processing": true, "serverSide": true, "ajax":{ url :"employee-grid-data.php", // json datasource type: "post", // method , by default get error: function(){ // error handling $(".employee-grid-error").html(""); $("#employee-grid").append('No data found in the server'); $("#employee-grid_processing").css("display","none"); } } } ); } ); 

Lorsque vous utilisez un traitement côté serveur, vous devez ignorer les parameters de demande de start et de length UNIQUEMENT SI le paramètre de length est -1 dans votre script PHP afin de renvoyer tous les enregistrements.

“lengthMenu”: [[10, 25, 50, -1], [10, 25, 50, “Tous”]]

1) signifie que “ALL” a la valeur -1.

2) c’est la raison pour laquelle lorsque vous sélectionnez Tous vous envoyez une longueur: -1 et pour 10, elle est longueur: 10

3) c’est la raison pour laquelle vous n’obtenez également aucune donnée trouvée sur le serveur – erreur

4) pour que cela soit correct, donnez-le dans votre contrôleur

var longueur = Request.Form.GetValues ​​(“longueur”). FirstOrDefault () == “-1”? Convert.ToSsortingng (YOUR_LIST.Count ()): Request.Form.GetValues ​​(“length”). FirstOrDefault ();

5) cela vous indiquera si length == -1, puis prenez le compte total de votre liste pour qu’il affiche toutes les lignes.