Как отфильтровать правильные данные, которые изменились с помощью ajax в jquery datatables? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть таблица сборки с jquery-datatable.Конфигурация моего источника данных:

$('#example1').DataTable(tableOption){
    order:[[1, 'desc']],
    //....
    searching: true,  //use default search function
    //....
}

Когда загружаются данные, существует запрос ajax, который изменяет данные одной строки, например:

$.ajax({
    url:'...',
    //....
    sucess:function(data){
        var newStatusStr= 'Retrieved';  //before was : Published
        tr.find('.schedule_status').html(newStatusStr);
        tr.find('.schedule_status').attr('title', newStatusStr);        
    }
})

После завершения ajax данные tdизменилось (с «Опубликовано» на «Получено»), но когда я ввел «Опубликовано», результат поиска в datatable все еще был со старыми данными.Вот несколько скриншотов:

  1. Изображение начального поиска
  2. Изображение, которое изменилось при помощи ajax
  3. Изображение html-элемента

Вы можете увидеть это, сравнив изображение 1 и изображение 2

Я просмотрел много документов о данных, но до сих пор понятия не имеюКак я могу сделать, чтобы получить правильный результат?Большое спасибо!

1 Ответ

0 голосов
/ 29 ноября 2018

Проблема в том, что вы обновляете только пользовательский интерфейс.Вместо этого вам необходимо обновить данные, которые DataTables использует для визуализации таблицы.Для этого используйте cell().data().

В вашем случае это будет выглядеть примерно так:

success: function(data) {
  var newStatusStr = 'Retrieved';
  var $td = tr.find('.schedule_status').attr('title', newStatusStr);
  var cell = table.cell($td[0]);
  cell.data(newStatusStr).draw();      
}

Обратите внимание, что в приведенном выше примере table являетсяссылка на ваш экземпляр DataTable.Также обратите внимание, что вы нигде не определили retrieveStr.Я предполагаю, что вместо этого должно быть newStatusStr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...