dataTables .row( ) 不是功能服务器端处理行详细信息
Posted
技术标签:
【中文标题】dataTables .row( ) 不是功能服务器端处理行详细信息【英文标题】:dataTables .row( ) is not a function servers side processing row details 【发布时间】:2014-08-22 00:54:31 【问题描述】: 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
插件?
是的,我确实包含了插件,表格显示很好,问题是行详细信息不起作用
【参考方案1】:
我遇到了同样的问题,只是通过堆栈溢出的答案解决了它。使用DataTable()
而不是dataTable()
。方法row().child()
不适用于dataTable()
。所以你将拥有:
var dtable = $('#table_echipamente').DataTable( )
而不是
var dtable = $('#table_echipamente').dataTable( )
【讨论】:
是的,就是这样。谢谢! 嘿,我遇到了同样的问题,根据上面的评论,我尝试将'dataTable'更改为'DataTable'。但它现在给出错误 - “DataTable.fnDestroy 不是函数” - ***.com/questions/31906217/… 请帮助! 嗨,是的,它会给出那个错误,因为 DataTable 没有那个方法(fnDestroy)了,你需要检查 API 使用什么,不记得了。【参考方案2】:我有类似的问题。确保数据表版本为1.10或以上
【讨论】:
以上是关于dataTables .row( ) 不是功能服务器端处理行详细信息的主要内容,如果未能解决你的问题,请参考以下文章
DataTables row.add() 不适用于 serverSide 选项