dataTables .row () n’est pas une tâche de traitement du côté serveur

function format ( d ) { return 'Full name: 
'+ 'Salary:
'+ 'The child row can contain any data you wish, including links, images, inner tables etc.'; } $(function() { var dtable = $('#table_echipamente').dataTable( { "processing": true, "serverSide": true, "ajax": { "url": "inc/table_echipamente.php", "type": "POST" }, "columns": [ { "class": "details-control", "orderable": false, "data": null, "defaultContent": "" }, { "data": "beneficiar" }, { "data": "dissortingbuit" }, { "data": "data_dissortingbuit" }, { "data": "denumire" }, { "data": "nr_inventar_nou" }, { "data": "nr_inventar_vechi" }, { "data": "gestionar" }, { "data": "observatii" }, { "data": "optiuni" } ], "order": [[1, 'asc']] }); // Array to track the ids of the details displayed rows var detailRows = []; $('#table_echipamente tbody').on( 'click', 'tr td:first-child', function () { var tr = $(this).closest('tr'); var row = dtable.row( tr ); var idx = $.inArray( tr.attr('id'), detailRows ); if ( row.child.isShown() ) { tr.removeClass( 'details' ); row.child.hide(); // Remove from the 'open' array detailRows.splice( idx, 1 ); } else { tr.addClass( 'details' ); row.child( format( row.data() ) ).show(); // Add to the 'open' array if ( idx === -1 ) { detailRows.push( tr.attr('id') ); } } } ); // On each draw, loop over the `detailRows` array and show any child rows dtable.on( 'draw', function () { $.each( detailRows, function ( i, id ) { $('#'+id+' td:first-child').sortinggger( 'click' ); } ); } ); } );

Je reçois le message d’erreur suivant lorsque je clique sur le bouton d’ouverture:

TypeError: dtable.rows n’est pas une fonction

Qu’est-ce que je fais mal? J’ai suivi l’exemple sur le site officiel. Je ne trouve pas le même problème, donc c’est très bizarre.

J’ai eu le même problème et je viens de le résoudre grâce à une réponse au débordement de stack. Utilisez DataTable() au lieu de dataTable() . La méthode row().child() ne fonctionnera pas avec dataTable() . Donc vous aurez:

var dtable = $('#table_echipamente').DataTable( {})

au lieu de

 var dtable = $('#table_echipamente').dataTable( {}) 

J’ai eu le même problème. Assurez-vous que la version de la table de données est 1.10 ou supérieure