1

我想要做的是在数据表的第一列中创建一个序列号,如果我没有使用延迟加载,那么上面的代码就可以工作了。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 错误:未捕获的类型错误:无法读取未定义的属性“fnSettings”我不知道该怎么做。

4

2 回答 2

1

好吧,我找不到导致错误的原因,但是如果可以帮助您,我会尝试找到替代方法。

我所做的是我从服务器带来了序列号,你可以以此作为参考

->select(DB::raw('(@cnt := if(@cnt IS NULL, 0,  @cnt) + 1) AS serial_number'))
于 2016-02-08T04:39:25.683 回答
1

好吧,我发现这也有效

"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
            var row = $(nRow);
            row.attr("id", 'row'+aData['0']);
            $("td:first", nRow).html(iDisplayIndex +1);
            return nRow

将您的 fnRowCallback 更新为此

于 2016-02-19T06:33:09.863 回答