Как мне динамически показать размер страницы в yii2? - PullRequest
0 голосов
/ 31 августа 2018

Пока что я установил статический размер страницы в своей функции поиска, но теперь мне нужно создать раскрывающийся список, чтобы пользователь мог изменить размер страницы с внешнего интерфейса. Например, как 10,20,50,100.

Я получил код, но он для yii предыдущей версии.

1 Ответ

0 голосов
/ 31 августа 2018

Если бы мне пришлось это сделать, я бы использовал следующий подход.

  • Создайте раскрывающийся список для размеров страницы. Вы можете настроить раскрывающийся список в параметре layout вида сетки, если хотите, чтобы он находился между текстом summary и списком items, или добавить его перед видом сетки. как это изображение, вы можете обернуть его с помощью div, чтобы настроить его самостоятельно.

enter image description here

Главное, что нужно сделать, это включить id раскрывающегося списка в параметр filterSelector, чтобы каждый раз при фильтрации сетки отображалось значение раскрывающегося списка, а также при каждом изменении раскрывающегося списка.

Ваш GridView будет выглядеть ниже

GridView::widget([
    'dataProvider' => $dataProvider,
    'layout'=>'{summary}'.Html::activeDropDownList($searchModel, 'myPageSize', [1 => 10, 2 => 20, 50 => 50, 100 => 100],['id'=>'myPageSize'])."{items}<br/>{pager}",
    'filterModel' => $searchModel,
    'filterSelector' => '#myPageSize',
    'columns'=>[
       // your column configurations.......
    ]
]);
  • Объявление публичной собственности в searchModel

    public $myPageSize

  • Добавьте это свойство к безопасным правилам в вашей searchModel

    [['myPageSize'],'safe']

  • А затем обновите ваш search() метод внутри относительного SearchModel, который вы используете с GridView. Вам следует присвоить pageSize параметр query внутри $dataProvider с новым определенным свойством, но обязательно добавьте эту строку после оператора $this->load($params).

    см. Ниже

    $dataProvider->pagination->pageSize = ($this->myPageSize !== NULL) ? $this->myPageSize : 10;`
    

Здесь мы устанавливаем размер страницы по умолчанию, равный минимальному параметру внутри раскрывающегося списка, который мы создали, в противном случае он будет обновляться при каждом изменении раскрывающегося списка.

Теперь попробуйте изменить выпадающий список, вы увидите, что он работает. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...