Скрытие загрузчика при обновлении сетки kartik

#php #yii

#php #yii

Вопрос:

У меня есть сетка, которая обновляется каждые 3 секунды. Все работает нормально, но проблема в том, что загрузчик (показывает…загрузка) продолжает появляться каждый раз, когда обновляется сетка.

Это то, что я пробовал:

   echo DynaGrid::widget([
    'columns' => $columns,
    'showPersonalize' => true,
    'options' => ['id' => 'trackyard'],
    'gridOptions' => [
        'options' => ['id' => 'assignsolicitation-inside'],
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'showPageSummary' => false,
        'pager' => [
            'firstPageLabel' => 'First',
            'lastPageLabel' => 'Last',
            'maxButtonCount' => 10,
        ],

        'toolbar' => [
            ['content' => '{dynagrid}'],
            '{export}',
            '{toggleData}'
        ],
        'pjax' => true,
        'pjaxSettings' => [
            'options' => [
                'id' => 'wod'
            ],],
        'bordered' => false,
        'striped' => true,
        'condensed' => true,
        'responsive' => true,
        'responsiveWrap' => false,
        'containerOptions' => ['style' => 'overflow:scroll'],
    ]
]);

?>
  

Затем после сетки у меня есть:

 <?php
  $script = <<< JS
function reloadgrid() {
var intervalID = setInterval(function() {
   $.pjax.reload({container:'#trackyard-pjax'});
}, 3000);
setTimeout(function() {
    clearInterval(intervalID);
}, 18000);
};

reloadgrid();
JS;
$this->registerJS($script, yiiwebVIEW::POS_HEAD);
?>
  

Как я могу скрыть загрузчик?

Ответ №1:

Я обнаружил, что мне нужно установить loadingCssClass в значение false

То есть

 echo DynaGrid::widget([
'columns' => $columns,
'showPersonalize' => true,
'options' => ['id' => 'trackyard'],
'gridOptions' => [
    'options' => ['id' => 'assignsolicitation-inside'],
    ....


    'pjax' => true,
    'pjaxSettings' => [
        'options' => [
            'id' => 'wod'
        ],
      'loadingCssClass'=>false,  //this disables the loading thing

      ],
    .........
   ]
  ]);

 ?>
  

Из документации Kartik здесь о настройках pjax

Ответ №2:

Используйте это в своем виджете

 'afterAjaxUpdate' => 'function(id) { $('.loader').hide(); }'
  

Надеюсь, это вам поможет.

Комментарии:

1. не отключает его

Ответ №3:

для exmp этот загрузчик div si

 <div class="loader"></div>
  

после обновления записи вы скрываете div загрузчика

 function(data) {
$('.loader').hide();
}
  

Комментарии:

1. Мне нужно отключить загрузчик kartik grid, а не пользовательский загрузчик