Yii2. Как указать pageSize в GridView (ListView)?


Приведу два простых примера, как указать количество выводимых записей (pageSize) для виджетов GridView И ListView.

Итак, первый вариант — указать параметр при создании DataProvider, например:

    
$searchModel = new PagesSearch();

$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination->pageSize=15;

Этот метод идеально подходит, если у вас несложное приложение, а также в случае разного количества выводимых строк на разных страницах.

Если же у Вас много одинаковых таблиц или списков — есть смысл отнаследоваться от базового класса и указать это свойство в одном месте, при этом изменить вызовы базовых классов на кастомные. Например:

class ActiveDataProvider extends \yii\data\ActiveDataProvider{

    public function init(){
        $this->pagination->pageSize     =   15 ;
        parent::init();
    }
}

При этом при создании объекта DataProvider Вам следует изменить в секции use подключение \yii\data\ActiveDataProvider на namespace Вашего кастомного класса, например, \backend\components\ActiveDataProvider.

В таком случае нет необходимости указывать pageSize при каждом создании экземпляра.

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *