Всегда показывать пейджер в CGridView? - PullRequest
4 голосов
/ 21 октября 2011

Я создал меню CGridView и хочу всегда отображать пейджер
(даже если он показывает все данные и навигация не нужна)
Это текущий код, который у меня есть:

$this->widget('zii.widgets.grid.CGridView',
        array('dataProvider'=>$search,
              'columns' => $columns,
              'itemsCssClass' => 'list_table',
              'template' => '{pager}{summary}{items}',
              'pager' => array(
                  'cssFile'=>false,
                  'class'=>'CLinkPager',
                  'firstPageLabel' => '<<',
                  'prevPageLabel' => '<',
                  'nextPageLabel' => '>',
                  'lastPageLabel' => '>>',
                  'header' => '',
                  'footer' => $footer_btns,
                  ),
              'pagerCssClass' => 'pagination',
            ));

1 Ответ

1 голос
/ 22 октября 2011

Вы можете сделать это, переопределив метод renderPager () - однако, кажется, что пейджер собирается в несколько файлов, поэтому одним из способов сделать это, переопределив только один класс, будет:

переопределите zii.widgets.grid.CGridView, чтобы добавить свой собственный метод renderPager () что-то вроде:

Yii::import('zii.widgets.grid.CGridView');
class MyGrid extends CGridView {
    public function renderPager() { ... }
}

функция renderPager () по умолчанию здесь .

Что вы хотите сделать, так это найти строку, которая проверяет содержимое пейджера:

if($pager['pages']->getPageCount()>1) {

и измените инструкцию "else", чтобы добавить в содержимое по умолчанию "пустой" пейджер, который может использовать ту же структуру <ul>. Поскольку вы не предоставляете никакой навигации для пустого представления, вам не нужно беспокоиться об этих данных, если они используются в нескольких местах. Это может выглядеть примерно так:

else {
        echo '<div class="'.$this->pagerCssClass.'">';
        ## YOUR CUSTOM "EMPTY PAGER" HTML HERE ##
        echo '</div>';
    }

Возможно, вам также понадобится определить пару дополнительных классов CSS. На страницах, где отображается только часть нумерации страниц (например, первая и последняя страницы), вы можете использовать CSS, чтобы переопределить класс (ы) .hidden.

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