2016-05-25 11 views
1

Я «успешно» реализовал DataTables в своем приложении. Сетка загружается полностью изначально с сервера без проблем. Однако, когда я вызываю метод ajax.reload(); на моей сетке, сообщение Processing застряло там, как если бы JSON был плохим или вызов на сервер не удался.DataTables Обработка сообщения Stuck on Grid Reload

Я проверил JSON как на первоначальный вызов и после вызова ajax.reload() и это точно тот же оба раза - без ошибок JSON вообще, точно такую ​​же строку JSON.

Почему при последующем вызове на сервер, даже с тем же самым точным JSON, возвращенным оба раза, имеет ли сообщение сообщение Processing?

Вот мой код:

var objUserTotalsTable = $('#tbl-qmes-tasking-user-totals').DataTable({ 
     processing: true, 
     language: { 
      processing: '<span class="fa fa-refresh fa-spin fa-3x fa-fw datatable-spinner"></span><div class="loading-text">Loading</div>' 
     }, 
     info: false, 
     serverSide: true, 
     ordering: false, 
     paging: false, 
     searching: false, 
     ajax: { 
      url: "Models/crud/Reports/qmes-tasking-select.aspx", 
      data: { 
       valSwitch: "user_totals" 
      }, 
     } 
    }); 
+1

Какая версия DataTables вы используете? ** oLanguage ** - устаревший код. Новая опция ** language.processing ** - это [как это] (https://datatables.net/reference/option/language.processing). –

+0

@EmreBolat Я использую 1.10.12 ... Я просто попытался изменить свой код, чтобы использовать новый 'language.processing' (см. Обновленный код выше), но сообщение' Processing' по-прежнему остается там при любой последующей загрузке сетки. Очень странно. И начальный вызов (который работает отлично), так и любые последующие вызовы (что делает сообщение «Обработка») возвращают ту же самую строку JSON без ошибок. – FastTrack

ответ

5

У вас есть обработка на стороне сервера включена serverSide: true. В этом режиме сервер должен возвращать параметр draw в ответе, содержащий то же значение, что и в запросе. Значение начинается с 1 и увеличивается с каждым запросом.

Скорее всего, вы возвращаете то же значение в параметре draw, и поэтому ваши последующие ответы игнорируются.

Для получения более подробной информации см. server-side processing documentation.

+0

Ты спасатель! – FastTrack

+0

Это помогло мне. Поскольку я был кешированием в Redis и забыл изменить параметр draw перед возвратом ответа при возврате из кеша вместо DB. – user964491

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