Comment exporter toutes les lignes de Datatables en utilisant Ajax?
Je suis en utilisant la nouvelle fonctionnalité dans les tables de données: "HTML5 exportation des boutons". Je suis le chargement de données avec l'Ajax.
https://datatables.net/extensions/buttons/examples/html5/simple.html
Le problème c'est qu'il ne l'exportation de la page actuellement affichée.
Je suis l'exportation comme ceci:
buttons: [
{
extend: 'pdfHtml5',
text: 'PDF',
exportOptions: {
"columns": ':visible',
}
},
]
Comment puis-je exporter toutes les lignes?
source d'informationauteur Fox
Vous devez vous connecter pour publier un commentaire.
Selon Les tables de données de la documentation il n'existe aucun moyen d'exporter toutes les lignes lorsque vous utilisez le côté serveur:
J'ai travaillé autour de par l'ajout d'un paramètre pour le menu de longueur et de formation des utilisateurs finaux pour afficher tous les enregistrements avant de faire un PDF (ou XLS) export:
Vous devez dire à l'AJAX fonction permettant d'obtenir toutes les données, puis de faire de l'exportation, mais annuler le réel de tirage, de sorte que l'ensemble de ces données n'est pas chargé dans le DOM. Les données complètes existent encore dans la mémoire pour les tables de données de l'API, donc vous devez l'actualiser à la façon dont elle était avant l'exportation.
et:
Oui, c'est tout à fait possible de faire ce travail.
En interne, les tables de données a une fonction appelée boutons.exportData(). Lorsque vous appuyez sur un bouton, cette fonction est appelée et renvoie le contenu de la page.
Vous pouvez remplacer la fonction pour qu'il retire tout de côté de serveur de résultats basés sur des filtres. Et d'appeler la même url utilisé pour la pagination ajax.
Vous le remplacer avant l'initialisation de votre table. Le code est comme suit:
La réponse de Selcuk fonctionnera très bien si l'on peut fixer la valeur de "Tous" à l'avance.
Supposons que le nombre de lignes est stocké dans la variable row_count. Puis
Je suis à l'aide de tables de données Version: 1.10.15, et a obtenu @kevenpo la réponse de travailler. J'ai dû modifier un peu pour gérer notre côté serveur les paramètres, mais c'est la seule pierre d'achoppement. J'ai changé sa ligne:
data.length = 2147483647;
àdata.params[2]= -1;
parce que nous stockées notre côté serveur les paramètres dans un params sous-tableau. Je n'ai pas encore testé avec un très grand jeu de données pour voir ce que la performance est, mais c'est très une solution intelligente.Voulais juste poster une réponse réelle pour les personnes en difficulté avec cela.
Si vous exportez à l'aide du bouton excel, vous pouvez utiliser le
customizeData
propriété bouton pour formater les données vers excel un moment avant qu'elle exporte.J'ai utilisé pour faire une api synchrones appel à mon serveur pour obtenir les données, la retourner, la masser, puis le laisser continuer sur son chemin. Le Code ci-dessous.