Comment mettre à jour manuellement les tables de données de la table avec de nouvelles données JSON
Je suis en utilisant le plugin jQuery datatables et charger mes données que j'ai chargé dans les DOM au bas de la page, et initie le plugin de cette façon:
var myData = [
{
"id": 1,
"first_name": "John",
"last_name": "Doe"
}
];
$('#table').dataTable({
data: myData
columns: [
{ data: 'id' },
{ data: 'first_name' },
{ data: 'last_name' }
]
});
Maintenant. après l'exécution de l'action je veux obtenir de nouvelles données à l'aide d'ajax (mais pas ajax option de construire dans les tables de données - ne vous méprenez pas!) et mise à jour de la table avec ces données. Comment puis-je le faire à l'aide de tables de données de l'API? La documentation est très confus et je ne peux pas trouver une solution. Toute aide sera très appréciée. Merci.
- Comment à propos de la suppression de l'existant tablebody et de créer de nouvelles?
Vous devez vous connecter pour publier un commentaire.
SOLUTION: (Avis: cette solution est pour les tables de données de la version 1.10.4 (pour le moment) pas d'ancienne version).
CLARIFICATION Par la La documentation de l'API (1.10.15), de l'API peut être accessible de trois façons:
La définition moderne de tables de données (en haut à dos de chameau cas):
var datatable = $( selector ).DataTable();
L'héritage définition des tables de données (en bas à dos de chameau cas):
var datatable = $( selector ).dataTable().api();
À l'aide de la
new
syntaxe.var datatable = new $.fn.dataTable.Api( selector );
Puis charger les données comme suit:
Références API:
https://datatables.net/reference/api/clear()
https://datatables.net/reference/api/rows.add()
https://datatables.net/reference/api/draw()
datatable.clear().rows.add(newDataArray).draw()
). Comme de ce commentaire, je suis l'aide de la version 1.10.18Vous pouvez utiliser:
Jsfiddle
Mise à jour. Et oui la documentation n'est pas très bon, mais si vous êtes d'accord avec d'anciennes versions, vous pouvez consulter l'héritage de la documentation.
Vous devrez détruire une vieille table de données d'instance et puis re-initialiser la table de données
Vérifiez d'abord si les données de la table existe par exemple à l'aide de $.fn.dataTable.isDataTable
s'il existe ensuite à le détruire, et puis créer une nouvelle instance comme ce
Dans mon cas, je ne suis pas en utilisant l'api ajax de flux Json de la table (ce qui est dû à une certaine mise en forme qui a été plutôt difficile à mettre en œuvre à l'intérieur de la datatable rendu de rappel).
Ma solution a été de créer la variable à l'extérieur de la portée de la onload fonctions et la fonction qui gère l'actualisation des données (
var table = null
, par exemple).Puis j'instancie ma table dans la méthode load
et enfin, dans la fonction qui gère l'actualiser, j'invoque le clear() et destroy() la méthode, de récupérer les données dans le code html de la table, et ré-instancier la datatable, en tant que tel:
J'espère que quelqu'un trouve cette pratique!
Ici est solution de l'héritage pour la datatable 1.9.4