В Yii2 GridView виджете пагинация по умолчанию предлагает стандартные кнопки для переключения между страницами. Однако, если вы хотите добавить свою стороннюю кнопку в пагинацию, вы можете использовать следующий подход.
1. Создайте свой класс наследующий класс yiigridLinkPager
. Например, CustomLinkPager
.
namespace appwidgets; use yiihelpersHtml; class CustomLinkPager extends yiiwidgetsLinkPager { // Переопределение метода для отрисовки каждой кнопки protected function renderPageButton($label, $page, $class, $disabled, $active) { if ($page == $this->maxButtonCount - 1 && $this->nextPageLabel !== false) { // добавление сторонней кнопки после максимальной кнопки return Html::tag('li', $this->nextPageLabel, ['class' => 'custom-button']) . parent::renderPageButton($label, $page, $class, $disabled, $active); } return parent::renderPageButton($label, $page, $class, $disabled, $active); } }
В классе CustomLinkPager
мы переопределяем метод renderPageButton()
, где мы добавляем свою стороннюю кнопку с классом custom-button
.
2. В представлении, где вы используете GridView, укажите новый класс пагинации CustomLinkPager
.
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'pager' => [ 'class' => 'appwidgetsCustomLinkPager', ], // остальные настройки GridView ]) ?>
Теперь ваша сторонняя кнопка будет добавлена в пагинацию после максимальной кнопки. Вы можете настроить внешний вид кнопки с помощью CSS.