DataTables ligne.ajouter à l'index spécifique
Je suis en remplacement de la ligne des articles comme ceci:
var $targetRow = $(entity.row),
dataTable = $targetRow.closest('table.dataTable').DataTable();
dataTable.row($targetRow).remove();
dataTable.row.add({ foo: 1 }).draw();
J'logique dans l' rowCreated
de rappel lié à la table, donc je suis à la recréation de la ligne d'en faire usage. Cela fonctionne très bien. Mais row.add
ajoute toujours le régénéré ligne en dernier dans la liste. Est-il possible de l'insérer dans un index spécifique?
- stackoverflow.com/questions/391314/jquery-insertat
- Un aperçu de ce problème: http://datatables.net/forums/discussion/660/how-to-add-a-row-at-a-specific-index/p1 et un pas-si-jolie solution de contournement: http://stackoverflow.com/questions/22387948/add-a-row-after-the-selected-row-in-jquery-datatables
- Je ne pense pas que la manipulation de la datatable html à l'aide de jQuery est le chemin à parcourir. Il a besoin de garder une trace des lignes... Ou je me trompe?
- oh désolé, je ne sais pas comment utiliser les tables de données. Je viens d'ajouter le lien parce que vous aviez de jquery dans les tags
- Merci, j'ai eu un coup d'oeil à ceux aussi bien. A été l'espoir d'une nouvelle solution 🙂
Vous devez vous connecter pour publier un commentaire.
dataTables tient ses lignes dans un tableau indexé, et il n'existe pas de méthodes de l'API pour ajouter une nouvelle ligne à un index spécifique ou de modifier le
index()
d'une ligne.Que fait réellement le bon sens depuis un typique dataTable est toujours triés /a ordonné ou filtré sur les données, pas la statique de l'index. Et lorsque vous recevez des données d'un serveur, ou souhaitez transmettre des données à un serveur, vous n'utilisez jamais la statique client
index()
soit.Mais si vous pensez à ce sujet, vous pouvez aussi réorganiser les lignes et par l'insertion d'une ligne à un indice très facile par le code, simplement par la réorganisation des données. Lorsqu'une nouvelle ligne est ajoutée, échangez les données de la dernière ligne (la ligne insérée) à la dernière rangée, le swap de données à partir de la deuxième ligne à la troisième de la dernière rangée et ainsi de suite, jusqu'à ce que vous atteignez l'indice de l'endroit où vous souhaitez insérer la ligne.
Exemple, l'insertion d'une nouvelle ligne à l'index où la souris est cliqué :
démo -> http://jsfiddle.net/mLh08nyg/
Une autre façon est d'insérer la ligne, et ensuite passer à la ligne dans la ligne de DataTable tableau à une position que vous spécifiez avant de redessiner la Table: