jquery - example - dataTables.row() no es un servidor de funciones que procesa los detalles de las filas
propiedades datatable jquery (2)
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'' );
} );
} );
} );
Me sale el siguiente error cuando hago clic en el botón Abrir:
TypeError: dtable.rows no es una función
¿Qué estoy haciendo mal? Seguí el ejemplo en el sitio oficial. No puedo encontrar un problema similar, así que es muy raro.
Tuve el mismo problema y acabo de resolverlo mediante una respuesta en el desbordamiento de pila. Use DataTable()
lugar de dataTable()
. El método row().child()
dataTable()
no funcionará con dataTable()
. Así tendrás:
var dtable = $(''#table_echipamente'').DataTable( {})
en lugar de
var dtable = $(''#table_echipamente'').dataTable( {})
Tuve un problema similar. Asegúrese de que la versión de la tabla de datos sea 1.10 o superior