@maxyc_webber
Web-программист

Yii2: Как сделать кастомные фильтры для ListView/GridView?

Нужно сделать вывод карточек товаров/пользователей. Нужно фильтры вынести за рамки grid/list view. но в рамках pjax
Каким образом можно манипулировать *view?

<?php \yii\widgets\Pjax::begin(); ?>
сюда фильтры можно вынести
<?= \yii\widgets\ListView::widget([
	'dataProvider' => $provider,
	'itemOptions' => ['class' => 'item'],
	'summary'=>'',
	'itemView' => function ($model, $key, $index, $widget) {
			return $this->render('_item', ['model' => $model]);
		},
]) ?>
<?php \yii\widgets\Pjax::end(); ?>
  • Вопрос задан
  • 5271 просмотр
Решения вопроса 1
@Zohei
use yii\widgets\Pjax;
use yii\widgets\PjaxAsset;
PjaxAsset::register($this);

$this->registerJs(<<<JS
$(document).on('change', '#provider', function(e) {
    $.pjax({
        timeout: 4000,
        url: $('#filter-form').attr('action'),
        container: '#list-view',
        fragment: '#list-view',
        data: {provider: this.options[this.selectedIndex].value},
   });
});
JS
, yii\web\View::POS_END);

<?=Html::beginForm(Url::current(), 'GET', ['id'=>'filter-form']);?>
     <?=Html::activeDropDownList($model, 'provider', Provider::items(), ['id'=>'provider']); ?>
<?=Html::endForm(); ?>

<?php \yii\widgets\Pjax::begin(); ?>
<?= \yii\widgets\ListView::widget([.....]) ?>
<?php \yii\widgets\Pjax::end(); ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы