две таблицы kartik\grid\GridView используют одну и ту же переменную получения разбиения на страницы

у меня есть две таблицы kartik\grid\GridView с нумерацией страниц на одной странице. Когда я меняю страницу первой таблицы, вторая таблица тоже меняет свою страницу. Они имеют один и тот же $_GET параметр page и per-page.

Любой вариант установки пагинации получить имена переменных или любой другой способ решить эту проблему.

Спасибо.


person Daniel Lagiň    schedule 27.09.2017    source источник
comment
stackoverflow.com/questions/38168203/two -gridviews-in-one-view/   -  person Double H    schedule 27.09.2017


Ответы (2)


Вы должны установить $pageParam в pagination в вашем ActiveDataProvider:

$dataProvider = new ActiveDataProvider([
        'query' => $query,
        'pagination' => [
             'pageParam' => 'nameOfYourParam',
        ],
        'sort' => [
             'sortParam' => 'nameOfYourSortParam'
        ]
    ]);

То же самое для $pageSizeParam в pagination.

person Yupik    schedule 27.09.2017

Несколько сеток на одной странице

В каждый виджет Yii2 инкапсулировано так много всего, что использование нескольких виджетов GridView — это простое действие, требующее внесения нескольких изменений.

Единственными параметрами, которые нельзя настроить с помощью класса модели DataProvider, являются pageParam и sortParam, которые определяют текущий индекс страницы и параметры, используемые для упорядочения сетки.

Предположим, например, что у нас есть два элемента управления GridView, заполненные двумя разными поставщиками данных, $firstDataProvider и $secondDataProvider.

В контроллере установим параметры pageParam и sortParam каждого DataProvider:

 $firstDataProvider->pagination->pageParam = 'first-dp-page';
 $firstDataProvider->sort->sortParam = 'first-dp-sort';

 $secondDataProvider->pagination->pageParam = 'second-dp-page';
 $secondDataProvider->sort->sortParam = 'second-dp-sort';
person Pratik Karmakar    schedule 27.09.2017