Несколько GridView в одном Pjax.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
zhanbolat18
Сообщения: 17
Зарегистрирован: 2017.09.07, 08:53

Несколько GridView в одном Pjax.

Сообщение zhanbolat18 »

Доброго времени суток, форумчане! Появился вопрос следующего рода. У меня на странице есть 2 GridView, по интервалу они должны обновляться. Я соответственно обернул их в pjax. Оба таблицы в одном pjax. Для обновления по интервалу использовал этот метод. Вопрос в следующем: если происходит клик по пагинаций или сортировка, оно влияет и на вторую таблицу. Есть ли способ указать префикс, или постфикс для Pjax или же какой то другой способ? Буду благодарен за ответ.
vad
Сообщения: 11
Зарегистрирован: 2017.02.01, 22:56

Re: Несколько GridView в одном Pjax.

Сообщение vad »

Привет! В ActiveDataProvider:

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

'pagination' => [
	'pageParam' => 'p',
],
'sort' => [
	'sortParam' => 's',
],
zhanbolat18
Сообщения: 17
Зарегистрирован: 2017.09.07, 08:53

Re: Несколько GridView в одном Pjax.

Сообщение zhanbolat18 »

Спасибо, получилось. Но вышла непонятная ситуация. В первом обновлений второй грид дублируется на странице. Но потом с ним ничего не присходит.

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

echo GridView::widget([
            'dataProvider' => Yii::$app->brigadeService->getCurrentShift([
                    'pagination' => [
                        'pageParam' => 'pagT1',
                    ],
                    'sort' => [
                        'sortParam' => 'sortT1',
                        'attributes' =>[
                            'chiefFullname' => [
                                'asc' => [CustomerFigment::tableName() . '.fio' => SORT_ASC],
                                'desc' => [CustomerFigment::tableName() . '.fio' => SORT_DESC],
                            ],
                            'status',
                        ]
                    ]
                ] + $dataProviderParams,['chief']),
            'columns' => [
                [
                    'attribute' => 'chief.code', 'label' => 'Код',
                    'format' => 'raw',
                    'value' => function($model){
                        return $model->chief->code === null ? null : Html::a($model->chief->code,null,['class' => 'marker-item', 'data-type' => 'brigade' , 'data-identify' => $model->chief->id]);
                    }
                ],
                ['attribute' => 'chiefFullname', 'label' => 'ФИО врача'],
                ['attribute' => 'status', 'value' => function($model){return \common\helpers\ConstHelper::getBrigadeStatusLabel($model->status);}],
            ],
        ] + $tableParams);

<div class="row">
    <div class="divider"></div>
</div>
    echo GridView::widget([
            'dataProvider' => Yii::$app->vehicleService->getCurrentShift(
                $dataProviderParams + [
                    'pagination' => [
                        'pageParam' => 'pagT2',
                    ],
                    'sort' => [
                        'sortParam' => 'sortT2',
                    ],
                ],
                ['driver']
            ),
            'columns' => [
                [
                        'attribute' => 'vehicle_number',
                        'value' => function($model){
                            if(empty($model->traccarId)){
                                return $model->vehicle_number;
                            }
                            return Html::a($model->vehicle_number,null,['class' => 'marker-item', 'data-type' => 'vehicle' , 'data-identify' => $model->traccarId]);
                        }
                ],
                ['attribute' => 'driverFullname', 'label' => 'ФИО водителя'],
                ['attribute' => 'status', 'value' => function($model){return \common\helpers\ConstHelper::getVehicleStatusLabel($model->status);}]
            ],

        ] + $tableParams);
Ответить