function format ( d ) {
return 'Full name: <br>'+
'Salary:<br>'+
'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": "distribuit" },
{ "data": "data_distribuit" },
{ "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').trigger( 'click' );
} );
} );
} );
開くボタンをクリックすると、次のエラーが表示されます。
TypeError:dtable.rowsは関数ではありません
何が悪いのですか?私は公式サイトの例に従いました。私は同様の問題を見つけることができないので非常に奇妙です。
私は同じ問題を抱えていて、スタックオーバーフローの回答でそれを解決しました。 DataTable()
の代わりにdataTable()
を使用してください。メソッドrow().child()
はdataTable()
では機能しません。したがって、次のようになります。
var dtable = $('#table_echipamente').DataTable( {})
の代わりに
var dtable = $('#table_echipamente').dataTable( {})
同様の問題がありました。データテーブルのバージョンが1.10以上であることを確認してください