2017-02-14 6 views
0

Я работаю в CodeIgniter, и у меня есть DataTable, я хочу отфильтровать данные из DT после вызова ajax. Я пытаюсь сделать это, отфильтровав таблицу, но она не работает.Фильтр Datatables после вызова Ajax

Вот код JS.

$(function() { 
    var tableRep= $("#tblreport").dataTable({ 
     responsive: true, filter:true, order: [[ 1, "desc" ]], 
      processing: true, serverSide: true, 
      ajax: { "url": baseurl+"reports/Report/dataTable", "type": "POST" }, 
      columns: 
      [ 
       {data:"idReport",}, 
       {data:"date"}, 
       {data:"customer"}, 
       {data:"status",visible:false}, 
       {data:null,searchable:false,orderable: false,width:"120px", render: function (row) 
       { if (row.status == "wait") {return '<a class="glyphicon glyphicon-search" data-toggle="modal" data-target="#report">Asign</a>'; } 
       else if (row.status == "process") {return '<a data-toggle="modal" data-target="#report">Edit</a>';} else return '';} } 
      ], 
      columnDefs: 
      [ 
      { responsivePriority: 1, targets: 1 }, 
      { responsivePriority: 2, targets: -1 }, 
      { responsivePriority: 3, targets: 2 } 
      ], fnCreatedRow: function(nRow, aData, iDataIndex) { 
      if (aData["status"] == "ready") { $('td', nRow).css('background-color', '#BEF781'); } 
      else if (aData["status"] == "wait") { $('td', nRow).css('background-color', '#F2F5A9'); } 
      else { $('td', nRow).css('background-color', '#FFFFFF'); } 
     }}) 
     }); 
var filteredData = tableRep.column(4).data().filter(function (value, index) {return value!="cancel" ? true : false;}); 

ответ

0

Вы попробовали эту опцию?

var tableRep= $("#tblreport").dataTable({ 
    //your config 
}) 
.on('draw.dt', function() { 
    //Add here yours filters 
}); 
+0

Я не пробовал ... Как работает draw.dt? –

+0

Здесь вы можете найти более подробное объяснение, https://datatables.net/reference/event/draw, но в основном это событие запускается каждый раз, когда таблица рисует что-то – cralfaro

Смежные вопросы