我想要做的是在数据表的第一列中创建序列号,如果我没有使用延迟加载,则上述代码正在运行。 BY使用此代码数据即将生效但数据表不起作用。 我在后端使用Laravel。请评论如果您需要我可以提供的任何其他信息来解决问题。
var table = $('#My Table').dataTable({
"processing": true,
"serverSide": true,
"ajax": "{!! route('Route') !!}",
"aaSorting": [[0, "desc"]],
"deferLoading": '{{ $total }}',
"columns": [
{data: 'col_1', name: 'name', 'sortable': true},
{data: 'col_2', name: 'name', 'sortable': true},
{data: 'col_3', name: 'name', 'sortable': true},
{data: 'col_4', name: 'name', 'sortable': true},
{data: 'col_5', name: 'name', 'sortable': true},
{data: 'col_6', name: 'name', 'sortable': true},
{data: 'col_7', name: 'name', 'sortable': true},
],
"lengthMenu": [
[5, 15, 20, -1],
[5, 15, 20, "All"] // change per page values here
],
"fnRowCallback": function (nRow, aData, iDisplayIndex) {
var oSettings = table.fnSettings();
$("td:first", nRow).html(oSettings._iDisplayStart + iDisplayIndex + 1);
return nRow;
}
});
Javascript错误:未捕获的TypeError:无法读取属性“fnSettings'未定义的我不知道该怎么做。
答案 0 :(得分:1)
好吧,我找不到导致错误的原因,但我试图找到替代方案,如果这可以帮到你。
我所做的是从服务器带来序列号,您可以将其用作参考
->select(DB::raw('(@cnt := if(@cnt IS NULL, 0, @cnt) + 1) AS serial_number'))
答案 1 :(得分:1)
我发现这也有效
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
var row = $(nRow);
row.attr("id", 'row'+aData['0']);
$("td:first", nRow).html(iDisplayIndex +1);
return nRow
将您的fnRowCallback更新为此