Как установить количество элементов, которые будут отображаться в виде сетки yii2?
Controller Код:
public function actionIndex() {
$searchModel = new ProductSearch();
if (Yii::$app->request->get('per-page') !== NULL) {
$searchModel->_pageSize = Yii::$app->request->get('per-page');
}
if ($searchModel->load(Yii::$app->request->post())) {
$searchModel->_pageSize = intval(Yii::$app->request->post()['ProductSearch']['_pageSize']);
$_SESSION['page_size'] = $searchModel->_pageSize;
}
if (isset($_SESSION['page_size']))
{
$dataProvider = $searchModel->search(Yii::$app->request->queryParams, null ,$_SESSION['page_size']);
}
else
{
$dataProvider = $searchModel->search(Yii::$app->request->queryParams, null, 20);
}
$dataProvider->pagination->pageSize=10;
$this->layout = 'main_ecommerce';
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
Посмотреть код:
if (isset($_SESSION['page_size']))
{
$searchModel->_pageSize = $_SESSION['page_size'];
}
Pjax::begin();
$form = ActiveForm::begin();
echo $form->field($searchModel, '_pageSize', [
'inputOptions' => [
'placeholder' => 'records',
'style' => 'overflow-x: auto;',
'class' => 'form-control input-xsmall input-inline' ],
])->label(Yii::t('app', 'Records : '))
->dropDownList(['10'=> 10, '20' => 20, '50' => 50], ['onchange'=>"this.form.submit();"]);
ActiveForm::end();
Pjax::end();
echo $searchModel->_pageSize;
?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'pager' => [
'options'=>['class'=>'pagination'],
'prevPageLabel' => Html::tag('i', "", ['class' => 'fa fa-angle-left']),
'nextPageLabel' => Html::tag('i', "", ['class' => 'fa fa-angle-right']),
'firstPageLabel'=>Html::tag('i', "", ['class' => 'fa fa-angle-double-left']),
'lastPageLabel'=> Html::tag('i', "", ['class' => 'fa fa-angle-double-right']),
],
'columns' => [
['class' => 'yii\grid\SerialColumn'],
На рисунке показано, что GridView отображает только 30 строк записей. Как я могу настроить это так, чтобы я мог отображать, например, 50 записей на странице. Как-то раз, когда я его уже установил, он продолжает показывать значение меньше, чем установленное мною. Почему это?
вы можете изменить размер страницы http://stackoverflow.com/questions/30570159/how-to-set-page-size-in-gridview-in-yii2/30572032#30572032 – scaisEdge
@scaisEdge я действительно пытался это, но он не показывает номер, который я хочу. я продолжаю показывать меньше. например, когда я устанавливаю $ dataProvider-> pagination-> pageSize = 15 ;, он будет показывать только 9 строк. он продолжает показывать меньше строк, чем тот, который я указал – CloudSeph
, почему вы проверяете page_size и не используете для этого обычные функции yii2? .. – scaisEdge