JQuery DataTables .Net Serveur Côté De La Pagination Des Questions
Je suis en train de travailler sur un correctif dès maintenant pour une application au travail, où le avant développeur (disparu depuis) n'a pas pris la peine de paginer les résultats des données sur une page conçu spécifiquement pour l'inscription des données résultats.
Bien sûr, cela a élevé sa vilaine tête que les utilisateurs commencent à voir le long de la course des erreurs de script dans internet explorer. Ceci, combiné avec le grand volume de données de taille, c'est de faire des pages web à peu près inutile.
Rapide vers l'avant à mon tente de la réparer, et ils passent assez bien. Le site est une .NET MVC 2 du site qui a été développé à l'aide de tables de données pour ajouter de recherche/tri/fonctionnalité de pagination sur le client. J'avais tout juste de terminer une tâche similaire à l'aide de jqGrid donc pensé que ce serait relativement simple. Et il a été l'exception d'un petit problème. Je ne peux pas pour la vie de me trouver des liens de page à générer.
Une rapide vue des résultats:
Les résultats savez qu'il y a 2086 enregistrements dans cette requête:
Mais la pagination des liens ne sont pas générées.
Ma méthode d'action est de retour JSON via
return Json(new
{
param.sEcho,
iTotalRecords = totalRecords,
iTotalDisplayRecords = filteredContracts.Count(),
aaData = result
},
JsonRequestBehavior.AllowGet);
où
param.sEcho = "1",
iTotalRecords = 2086,
iTotalDisplayRecords = 25,
et aaData est la matrice résultat de données à afficher
Pour être complet, il est le datatable initialiser déclaration:
$("#tblToDoItems").dataTable({
'bServerSide': true,
'bProcessing': true,
'sAjaxSource': '/Home/GetContractList',
"bJQueryUI": true,
"bAutoWidth": false,
"bPaginate": true,
"sPaginationType": "full_numbers",
"iDisplayLength": 25,
/* make the first and last columns not sortable */
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [0, -1] }
]
});
Me manque certains paramètres qui permettraient de prévenir les tables de données de la génération de la pagination via un serveur de données du côté de la recherche?
Vous devez vous connecter pour publier un commentaire.
Votre iTotalDisplayRecords est égal à 25, de sorte que les datatables pense qu'il y a seulement 25 contrats sur le côté serveur et la deuxième page n'est pas nécessaire, parce que tous d'entre eux sont déjà indiqués sur la page en cours.
C'est comon erreur - si vous prenez un coup d'oeil à la JQuery, MVC tutoriel section de la mise en Œuvre de la pagination côté serveur, vous verrez qu'il y a trois nombres:
Si vous mettez tous.Le comte insteadof le résultat.Comte dans le iTotalDisplayRecords DataTables montrera la pagination. iTotalDisplayRecords et iTotalRecords sont utilisés pour afficher le message
"Affichage de 1 à 25 de iTotalDisplayRecords (iTotalRecords au total)"
Si iTotalDisplayRecords est égal à 25, DataTables va afficher le message "résultats 1 à 25 de 25 (iTotalRecords au total)", et d'affirmer qu'il n'existe pas de page 2; par conséquent, la pagination est désactivé, comme dans votre exemple.
Jovan