2016-02-05 37 views
1

我想要做的是,在数据表的第一列创建一个序列号,如果我没有使用延迟比上述代码工作。 BY使用此代码数据正在调用,但数据表不起作用。 我在后端使用Laravel。请评论如果您需要任何其他我可以提供的信息来解决问题。FnSettings不工作在延迟加载Yajra

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'我不知道该怎么做。

回答

1

好吧,我发现这也适用

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

更新您的fnRowCallback这个

+0

非常欢迎 –

1

嗯,我找不到是什么导致了错误,但我试图找到一个替代品,如果这可以帮助你。

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

->select(DB::raw('(@cnt := if(@cnt IS NULL, 0, @cnt) + 1) AS serial_number'))