2015-07-12 5 views
2

У меня есть функция для динамического добавления данных в DataTables. Вот функция.DataTables показывает метку «Обработка ...», когда динамически fnAddData

function fnClickAddRow() { 
    for (i=0; i<10000; i++) { 
     $('#example').dataTable().fnAddData([ 
     giCount+".1", 
     giCount+".2", 
     giCount+".3", 
     giCount+".4" ] 
     ); 
    } 
} 

Эта функция будет динамически добавлять в мой #example DataTable, но экран выглядит висит во время манипуляции, есть способ, чтобы показать знак загрузки/обработки с помощью «обработки» : правда,

ответ

7

Нет функции для запуска отображения сообщения «Обработка» через API, однако есть обходной путь.

Необходимо включить индикатор обработки с помощью bProcessing: true (для DataTables 1.9) или processing: true (для DataTables 1.10).

Чтобы показать индикатор обработки для таблицы с идентификатором example:

$('.dataTables_processing', $('#example').closest('.dataTables_wrapper')).show(); 

Чтобы скрыть индикатор обработки для таблицы с идентификатором example:

$('.dataTables_processing', $('#example').closest('.dataTables_wrapper')).hide(); 

Другое дело, стоит отметить, что для какого-либо показателя обработки причиной WASN пока не будет добавлен setTimeout с задержкой 100 мс.

На стороне примечания, для выполнения необходимо указать false в качестве второго параметра для fnAddData(), чтобы указать, что повторная ничья не требуется. Когда вы закончите добавлять строки, вы можете позвонить fnDraw(), чтобы перерисовать таблицу, см. this jsFiddle.

Вы можете улучшить производительность еще больше, если сначала поместить данные в массив, а затем позвонить fnAddData() один раз.

См. this jsFiddle для кода и демонстрации.

0

В настоящее время действует processing() plugin, что позволяет сделать это с помощью API.

Как только плагин установлен, его можно вызвать как (например): table.processing([true/false]);

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