2014-11-10 3 views
0

Я пытаюсь перезагрузить datatable. Я нажимаю на ячейку, а затем работает запрос ajax. Если он возвращает успех, мне нужно перезагрузить данные с новыми данными. Я могу увидеть действие перезагрузки «Обработка», но новые данные не отображаются в таблице.JQuery Datatable reload

Я использую ту же функцию в процессе удаления, и она работает.

Вот мой пример кода;

var dataTableId = "#dataTable"; 

function deleteFunction(){ 

// works correctly 

} 

$(dataTableId).dataTable({ 
     "sAjaxSource": "url", 
     "aoColumns": [ 
      ... 
     ], 
     "aoColumnDefs": [    
      ...  
     ] 
}); 

    var table = $(dataTableId).DataTable(); 
    $('#dataTableFiles tbody').on('click', 'td', function() { 

       $.ajax({ 
        url: "url", 
        type: 'post', 
        dataType: 'json', 
        data: postArray, 
        success: function (response) { 
         if (response.result) { 
          table.ajax.reload(); 
         } 
         else { 
          table.ajax.reload(); 
         } 
        }, 
        error: function() { 
         console.log("err") 
        } 
       });  
    }); 

Спасибо ..

+0

Можете ли вы рассказать нам, что такое verson dataTable api, который вы используете? –

+0

Привет, "@version 1.10.0-dev" – kbrk

+0

Вы видели ошибку в браузере? –

ответ

0

У меня была такая же проблема.

Убедитесь, что ваша функция в классе контроллера возвращает также атрибут sEcho. SEcho отправляется от клиента в ajax-запросе, тогда вам нужно записать это sEcho в свой класс контроллера и отправить его обратно без изменений. Таким образом, json из класса контроллера может выглядеть так: (где sEcho = 10 - это значение, отправленное от клиента).

{ 
     "iTotalRecords": 10, 
     "iTotalDisplayRecords": 10, 
     "sEcho":10, 
     "aaData": [ 

     ] 
    }