Я хочу добиться динамического отображения содержимого вкладок.
Каждая вкладка представляет собой дату, при клике на нее из базы должны подгружаться соответствующие записи. Так как вкладок много, воспользовался плагином для организации прокрутки, примерно как сверху у браузеров. Сами вкладки тоже формируются через запрос к базе (из записей выбираются уникальные даты) и являются ссылками.
Если кратко - то внутри pjax находятся 2 виджета: список дат и GridView.
Кликая на первых вкладках создается впечатление, что всё хорошо :) В большинстве случаев данные обновляются без видимой перезагрузки. Но в случае прокрутки полосы с вкладками обнаруживается, что она каждый раз обновляется - отображаются первые вкладки, и затем прокручиваются до выбранной (так на js прописано).
Вопрос - как кликая по ссылке добиться того, чтобы сам виджет со ссылками попутно не обновлялся?
Вот часть кода из вида:
// на основании выборки из базы в цикле формируется массив вкладок для виджета
$items[] = [
'label' => $label,
'url' => ['event/index', 'EventSearch[usertime]' => $date],
'active' => $active,
];
<?php Pjax::begin() ?>
<?= ScrollTabs::widget([ // вкладки с датами сверху
'items' => $items,
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
...
],
]); ?>
<?php Pjax::end(); ?>
И действие контроллера:
public function actionIndex()
{
$searchModel = new EventSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$pagination = (new \yii\db\Query()) // выдает список дат, когда у данного пользователя имеются записи; записи в дальнейшем группируются по дням
->select('CAST(usertime as DATE) as userdate')
->from('event')
->where(['user_id' => Yii::$app->user->id]) // залогиненный юзер
->distinct()
->orderBy('userdate DESC');
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'pagination' => $pagination,
]);
}