Comment détruire la première initialisation de la datatable (DataTable à l'intérieur d'un modal)
J'ai un modal affiche un tableau. Et j'utilise datatable plugin de sorte que les données sont consultables et triable. Il fonctionne bien au début, mais quand j'ai fermer la modale et cliquez sur un autre lien sur le même modale, il affiche l'erreur. J'ai trouvé la solution pour détruire la DataTable et j'ai mis le destroy()
avant l'initialisation de la datatable mais alors aucune donnée n'est affichée à l'intérieur de la table.. si je l'ai mis après l'initialisation, elle m'a donné l'erreur d'initialisation de la deuxième fois que je clique sur le bouton. Comment vais-je résoudre ce problème?
voici mon code:
$.ajax({
url: "<?php echo site_url('admin/group/getMember')?>",
type: 'POST',
data: { 'groupID': id},
dataType: 'JSON',
success: function(result){
$('#records_table tbody').empty();
//$('#records_table').DataTable({
//"bLengthChange": false,
//"paging":false,
//});
$('.modal-header #hdrmsg').text(result[0].fname);
var trHTML='';
$.each(result, function (i, item) {
trHTML += '<tr><td>' + item.fname + '</td><td>' + item.mname + '</td><td>' + item.lname + '</td></tr>';
});
$('#records_table tbody').append(trHTML);
$('#records_table').DataTable({
"bLengthChange": false,
"paging":false,
});
$('#records_table').DataTable().fnDestroy();
}
});
Ce sujet de l'utilisation de détruire() lorsque vous fermez modal?
où vais-je mettre ce code? Comment? J'ai déjà essayé
et aussi quand j'ai essayé modal sur
ont remplacé la datatable tag avec jquery datatables tag. La datatable balise était à l'origine une .NET tag, maintenant ambiguë / obsolute - jQuery dataTables est (était) identifiés par les tables de données du tag, maintenant jquery datatables ou datatables-1.10 balises.
où vais-je mettre ce code? Comment? J'ai déjà essayé
$('#viewMember').on('hidden.bs.modal', function (event) { $('.modal-body #records_table').DataTable().fnDestroy(); });
mais toujours le même problème.. il n'a pas de détruire la datatable.et aussi quand j'ai essayé modal sur
hide
, le modal maintenant ne peut pas être fermé..ont remplacé la datatable tag avec jquery datatables tag. La datatable balise était à l'origine une .NET tag, maintenant ambiguë / obsolute - jQuery dataTables est (était) identifiés par les tables de données du tag, maintenant jquery datatables ou datatables-1.10 balises.
OriginalL'auteur d_unknown | 2015-03-16
Vous devez vous connecter pour publier un commentaire.
La principale raison de la destruction d'un dataTables exemple est, si vous voulez changer l'initialisation des options - comme le changement
paging
et ainsi de suite. Ou si la structure de la table doit être modifiée. Aucune de ces conditions semble être le cas ici? Pour répondre à la question, le plus sûr moyen de le détruire et de le réinitialiser un tableau est d'utiliser le raccourci optiondestroy: true
:Pour aller plus loin, je pense que vous faites un peu en arrière.
$('#records_table tbody').empty();
au lieu detable.clear()
?$('#records_table tbody').append(trHTML);
au lieu d'utilisertable.row.add([...])
?Voici un code scénario similaire à celui de la question, qui reinitialises la dataTable sans conflits, à chaque fois que le modal est indiqué :
voir démo -> http://jsfiddle.net/bz958dxj/
Mais vous avez vraiment n'avez pas besoin de détruire la table à tout, il ralentit les performances :
démo -> http://jsfiddle.net/8mjke9ua/
NB: je viens de
assume
nous parlons de bootstrap des modaux, basé sur la référence à.modal-header
dans la question.NB2: Avis de la
$.parseJSON(response.contents)
, vous devez le faire comme vous le faites dans la question. La seule raison pour cela est que les exemples à travers un proxy pour éviter de la même origine.OriginalL'auteur davidkonrad