2016-02-05 35 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'))