как я могу отобразить «обработку» внутри jquery datatable?

Я использую jquery datatables (angular datatables) с обработкой на стороне сервера, сообщение «обработка» находится над таблицей. Я могу изменить позицию через sDOM (lfrtip), но можно ли сделать это внутри datatable (поставить p в t)?


person vincentf    schedule 23.02.2016    source источник


Ответы (2)


Да... есть несколько способов сделать это. Мне нравится использовать «загрузку GIF». Итак, ваш HTML выглядит так:

<table  id="main_index">
<img id="loading_gif" src="images/ajax-loader.gif"> <!--this is your loading image or div-->
</table>

Затем вы хотите, чтобы этот .gif был скрыт после загрузки таблицы. Для этого вы используете функцию обратного вызова datatables. Например:

$("#main_compare").DataTable({
//all of your other datatables configuration followed by a comma then...
"drawCallback": function(settings, json) {
            $('#loading_gif').hide(); //hides the loading image once table is loaded
            //do anything else you want to have happen only once the table is loaded
                }
})

ИЗМЕНИТЬ

Основываясь на вашем комментарии, я думаю, что это то, что вы ищете.

Если вы хотите, чтобы сообщение отображалось в области таблицы во время ее загрузки, вы используете эту структуру:

<table  id="main_index">
    <div id="table_processing">Whatever text you want</div> 
    </table>

Затем вы можете скрыть это, используя код из моего исходного ответа, чтобы скрыть этот div при загрузке таблицы.

person jonmrich    schedule 23.02.2016
comment
спасибо за ваш ответ @jonmrich, я не очень понимаю решение. Я не хочу вставлять еще один элемент. Я заменил сообщение «обработка» загрузочным gif, просто хочу, чтобы оно отображалось в нужном месте. - person vincentf; 24.02.2016
comment
для моей таблицы данных я хочу поместить ее в элемент таблицы - person vincentf; 25.02.2016
comment
Мой отредактированный ответ сделает именно то, что вам нужно. Он помещает текст внутри таблицы до тех пор, пока вы не удалите его при загрузке таблицы. - person jonmrich; 25.02.2016

  1. Параметр processing должен быть установлен в значение true и
  2. В варианте sDom нужна была буква r.

    var options = {  
      "sDom": 'prtp',  
      "processing": true,  
      "serverSide": true,  
      "ajax": "/path/to/my/ajax.php"  
    }  
    var oTable = $('.datatables').dataTable(options);  
    
person Dixit Solanki    schedule 14.12.2017