Wie wird die Anzahl der Elemente festgelegt, die in der yii2-Rasteransicht angezeigt werden sollen?
Controller-Code:
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,
]);
anzeigen Code:
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'],
Das Bild zeigt, dass die Gridview nur 30 Zeilen von Datensätzen angezeigt wird. Wie kann ich das einstellen, damit ich z. B. 50 Datensätze pro Seite anzeigen kann? Irgendwie, wenn ich es einmal eingestellt habe, zeigt es einen niedrigeren Wert als den, den ich eingestellt habe. Warum das?
können Sie die Seitengröße ändern http://stackoverflow.com/questions/30570159/how-to-set-page-size-in-gridview-in-yii2/30572032#30572032 – scaisEdge
@scaisEdge ich habe versucht das, aber es zeigt nicht die Nummer, die ich will. Ich zeige weniger. Wenn ich beispielsweise $ dataProvider-> pagination-> pageSize = 15; einstelle, werden nur 9 Zeilen angezeigt. es zeigt weniger Zeile als die, die ich angegeben – CloudSeph
warum Sie für page_size überprüfen und nicht die normalen yii2 Funktionen dafür verwenden? .. – scaisEdge