Pjax фильтр не работает GridView

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Vi_ru_S
Сообщения: 60
Зарегистрирован: 2018.08.14, 07:39
Откуда: Владивосток
Контактная информация:

Pjax фильтр не работает GridView

Сообщение Vi_ru_S »

Всем привет. Знаю что изъезженная тема но все же у меня не работает.
View

Код: Выделить всё

<?php

use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\Pjax;

/* @var $this yii\web\View */
/* @var $searchModel common\models\CatalogCounterpartiesSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Контрагенты';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="catalog-counterparties-index">

    <?php
    Pjax::begin([
        'id' => 'catalog-counterparties-index',
        'timeout' => 10000,
        'enablePushState' => false,
    ]);
    ?>
    <h1><?= Html::encode($this->title) ?></h1>
    <p>
        <?= Html::a('Добавить Контрагента', ['create'], ['class' => 'btn btn-success']) ?>
    </p>
    <?=
    GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'options' => ['data-pjax' => false],
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            'id',
            'name',
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{select} {create-copy}',
                'buttons' => [
                    'create-copy' => function ($url) {
                        return Html::a(Html::tag('span', '', ['class' => "glyphicon glyphicon-copy"]), $url, ['class' => 'btn btn-success btn-xs', 'title' => 'Добавить копированием']);
                    },
                    'select' => function ($url) {
                        return Html::a(Html::tag('span', '', ['class' => "glyphicon glyphicon-ok"]), $url, ['class' => 'btn btn-success btn-xs', 'title' => 'Выбрать']);
                    },
                ]
            ],
        ],
    ]);
    ?>

    <?php Pjax::end(); ?>
</div>
controller

Код: Выделить всё

    public function actionIndex() {

        $searchModel = new CatalogCounterpartiesSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
        if (Yii::$app->request->isAjax) {
            return $this->renderAjax('_pjax-index', [
                        'searchModel' => $searchModel,
                        'dataProvider' => $dataProvider,
            ]);
        } else {
            return $this->render('index', [
                        'searchModel' => $searchModel,
                        'dataProvider' => $dataProvider,
            ]);
        }
    }
Что в этом чуде не так? Консоль чистый!
В действительности все иначе чем на самом деле. Антуан де Сент Экзюпери

Аватара пользователя
Dominus
Сообщения: 874
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Pjax фильтр не работает GridView

Сообщение Dominus »

Так пробуйте:

Код: Выделить всё

<?php

use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\Pjax;

/* @var $this yii\web\View */
/* @var $searchModel common\models\CatalogCounterpartiesSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Контрагенты';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="catalog-counterparties-index">
    <h1><?= Html::encode($this->title) ?></h1>
    <p>
        <?= Html::a('Добавить Контрагента', ['create'], ['class' => 'btn btn-success']) ?>
    </p>
    <?php Pjax::begin([
        'id' => 'catalog-counterparties-index',
        'timeout' => 10000,
        'enablePushState' => false,
    ]); ?>
    <?= GridView::widget([
        'id' => 'grid-counterparties',
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'tableOptions' => [
            'class' => 'table table-bordered table-hover',
        ],
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            'id',
            'name',
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{select} {create-copy}',
                'buttons' => [
                    'create-copy' => function ($url) {
                        return Html::a(Html::tag('span', '', ['class' => "glyphicon glyphicon-copy"]), $url, [
                            'class' => 'btn btn-success btn-xs',
                            'title' => 'Добавить копированием',
                            'data-pjax' => 0
                         ]);
                    },
                    'select' => function ($url) {
                        return Html::a(Html::tag('span', '', ['class' => "glyphicon glyphicon-ok"]), $url, [
                            'class' => 'btn btn-success btn-xs',
                            'title' => 'Выбрать',
                            'data-pjax' => 0
                         ]);
                    },
                ]
            ],
        ],
    ]); ?>
    <?php Pjax::end(); ?>
</div>

Код: Выделить всё

public function actionIndex() {
    $searchModel = new CatalogCounterpartiesSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);        
    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
    ]);
}
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!

Ответить