CGridView пагинация

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

CGridView пагинация

Сообщение rak »

В CGridView не отображаются ссылки first и last page. Нахожусь на 1 странице, ссылка на последнюю есть, но в стилях прописано display:none

Код: Выделить всё

<li class="last"><a href="/admin/core/interface_messages/index.html?CoreInterfaceMessages_page=27">Last >></a></li>
 
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: CGridView пагинация

Сообщение Ekstazi »

Меняйте стили, это не баг.
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: CGridView пагинация

Сообщение rak »

ну не знаю,как по мне - эти вещи лучше бы было вынести в параметры, чем менять стили
keltanas
Сообщения: 39
Зарегистрирован: 2009.07.15, 10:19
Откуда: Санкт-Петербург
Контактная информация:

Re: CGridView пагинация

Сообщение keltanas »

Версии, в которых заметил неисправность: 1.1.6, 1.17

Шаги:

Настраиваю urlManager в конфиге:

Код: Выделить всё

'components'=>array(
        'urlManager'=>array(
            'urlFormat'=>'path',
        ),
) 
Генерирую модель Firm через Gii.
Модель связяна еще с парой других через BELONGS, но вроде это работает и не относиться к проблеме.

Далее через Gii генерирую FirmsController.
В него пишу код:

Код: Выделить всё

class FirmsController extends Controller
{
    public function actionIndex()
    {
        $criteria   = new CDbCriteria();
        $criteria->order    = 't.name';
        $criteria->with     = array('Manager','Type');

        $this->render('index', array(
            'dataProvider' => new CActiveDataProvider('Firm', array(
                'criteria'  => $criteria,
                'pagination'    => array(
                    'pageSize'  => 25,
                ),
            )),
        ));
    } 
} 
Далее делаю в виде такой вызов виджета:

Код: Выделить всё

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'   => array(
        array(
            'class'=>'CButtonColumn',
        ),
        'name',
        'addr',
        'phone',
        array(
            'name'  => 'Type.name',
            'header'=> 'Тип',
        ),
        'fax',
        array(
            'name'  => 'Manager.fname',
            'header'=>'Куратор',
        ),
        'military',
        'text',
    ),
));
 
Запрашиваю страницу по адресу http://proj/index.php/firms

Все отлично, табличка выводится.

Код пэйджера содержит такие ссылки:

Код: Выделить всё

<li class="first hidden"><a href="firms/index"><< Первая</a></li>
<li class="previous hidden"><a href="firms/index">< Предыдущая</a></li>
<li class="page selected"><a href="firms/index">1</a></li>
<li class="page"><a href="firms/index/Firm_page/2">2</a></li>
<li class="page"><a href="firms/index/Firm_page/3">3</a></li>
<li class="page"><a href="firms/index/Firm_page/4">4</a></li>
<li class="page"><a href="firms/index/Firm_page/5">5</a></li>
<li class="page"><a href="firms/index/Firm_page/6">6</a></li>
<li class="page"><a href="firms/index/Firm_page/7">7</a></li>
<li class="page"><a href="firms/index/Firm_page/8">8</a></li>
<li class="page"><a href="firms/index/Firm_page/9">9</a></li>
<li class="page"><a href="firms/index/Firm_page/10">10</a></li>
<li class="next"><a href="firms/index/Firm_page/2">Следующая ></a></li>
<li class="last"><a href="firms/index/Firm_page/58">Последняя >></a></li> 
Дальше начинаю перелистывать страницы.

Перехожу на стр.2 - все нормально, но код пейджера меняется на такой:

Код: Выделить всё

<li class="first"><a href="/index.php/firms/index/ajax/yw0"><< Первая</a></li>
<li class="previous"><a href="/index.php/firms/index/ajax/yw0">< Предыдущая</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0">1</a></li>
<li class="page selected"><a href="/index.php/firms/index/ajax/yw0/Firm_page/2">2</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/3">3</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/4">4</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/5">5</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/6">6</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/7">7</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/8">8</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/9">9</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0/Firm_page/10">10</a></li>
<li class="next"><a href="/index.php/firms/index/ajax/yw0/Firm_page/3">Следующая ></a></li>
<li class="last"><a href="/index.php/firms/index/ajax/yw0/Firm_page/58">Последняя >></a></li> 
Перехожу на стр.3 - код пэйджера меняется на такой:

Код: Выделить всё

<li class="first"><a href="/index.php/firms/index/ajax/yw0"><< Первая</a></li>
<li class="previous"><a href="2">< Предыдущая</a></li>
<li class="page"><a href="/index.php/firms/index/ajax/yw0">1</a></li>
<li class="page"><a href="2">2</a></li>
<li class="page selected"><a href="3">3</a></li>
<li class="page"><a href="4">4</a></li>
<li class="page"><a href="5">5</a></li>
<li class="page"><a href="6">6</a></li>
<li class="page"><a href="7">7</a></li>
<li class="page"><a href="8">8</a></li>
<li class="page"><a href="9">9</a></li>
<li class="page"><a href="10">10</a></li>
<li class="next"><a href="4">Следующая ></a></li>
<li class="last"><a href="58">Последняя >></a></li> 
В общем-то после третьей страницы буольше уже перейти никуда нельзя ((

PS: Прошу прощения, если это уже было. Может кто знает, как лечить?
Ответить