CGridView пагинация показать "все"

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Kuklovod
Сообщения: 211
Зарегистрирован: 2011.11.22, 08:15

CGridView пагинация показать "все"

Сообщение Kuklovod »

Всем привет.
Как сделать в CGridView такую фику чтоб можно было посмотреть инфу без пагинации, в режиме "туалетная бумага", когда на страницу выводится сразу вся инфа.
API по этой теме читал, но не чего не нашел, может не туда смотрел.


Прикрепляю скрин, в красной рамке то что нужно добавить.
2012-02-24 11 41 15.png
2012-02-24 11 41 15.png (21.34 КБ) 7937 просмотров
Аватара пользователя
MetalGuardian
Сообщения: 208
Зарегистрирован: 2011.03.06, 02:42
Откуда: Киев

Re: CGridView пагинация показать "все"

Сообщение MetalGuardian »

можно переписать CGridView->template и добавить туда линк на "все записи". а там уже через get передать что нужно показать все записи.
Аватара пользователя
Kuklovod
Сообщения: 211
Зарегистрирован: 2011.11.22, 08:15

Re: CGridView пагинация показать "все"

Сообщение Kuklovod »

MetalGuardian писал(а):можно переписать CGridView->template и добавить туда линк на "все записи". а там уже через get передать что нужно показать все записи.
Передаю такой код в гет
http://contakt.torgi/site/index?pagenation=1 не работает
http://contakt.torgi/site/index?ajax=go ... ation=1так тоже не работает
хотя так работает для пагинации http://contakt.torgi/site/index?Good_page=3

В модели я написал так

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

    public $pagination = FALSE;

    ///.....
    в rules()
    array('id,pagination, ...', 'safe', 'on'=>'search'),

   в public function search() у меня это public function fornt()

        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
            'pagination'=>array(
                'pageSize' => $this->pagination==1?100000:10,
            ),
        ));
 
Не понимаю почему не получается через гет задать $this->pagination = 1
g00dluck
Сообщения: 17
Зарегистрирован: 2010.12.03, 11:41

Re: CGridView пагинация показать "все"

Сообщение g00dluck »

может 'pageSize' => $_GET['pagination']==1?100000:10,
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

Re: CGridView пагинация показать "все"

Сообщение kukuruku »

лучше уже как в твитере делать- при прокрутке подгружать новые записи
Аватара пользователя
Kuklovod
Сообщения: 211
Зарегистрирован: 2011.11.22, 08:15

Re: CGridView пагинация показать "все"

Сообщение Kuklovod »

g00dluck писал(а):может 'pageSize' => $_GET['pagination']==1?100000:10,
да, работает)) :D
maschingan
Сообщения: 75
Зарегистрирован: 2011.01.20, 23:52

Re: CGridView пагинация показать "все"

Сообщение maschingan »

Думаю лучше pagination => false, чем pageSize => 100000
XprogeR
Сообщения: 18
Зарегистрирован: 2011.11.05, 17:44

Re: CGridView пагинация показать "все"

Сообщение XprogeR »

Kuklovod писал(а):
g00dluck писал(а):может 'pageSize' => $_GET['pagination']==1?100000:10,
да, работает)) :D
Эм... А получить кол-во записей из БД и подставить на место кол-ва страниц?
PS: При создании CActiveDataProvider вторым параметром передаёться конфигурационный массив, элемент pagination является конфигурационным массивом для пагинатора, так вот при определённых условиях передавать элементу pageSize кол-во равное кол-ву записей в таблице ну или через переменную которая отвечает за кол-во страниц на строке. Вариантов вообщем много все зависит от вашей фантазии.
maschingan писал(а):Думаю лучше pagination => false, чем pageSize => 100000
Я глядел в исходно коде вообще такой вариант не прокатит, ну и на всякий случай проверил, действительно, сбрасывается к кол-ву по умолчанию(10, установлено в фреймворке, константой).
esche
Сообщения: 1054
Зарегистрирован: 2010.11.24, 03:39

Re: CGridView пагинация показать "все"

Сообщение esche »

XprogeR писал(а):Эм... А получить кол-во записей из БД и подставить на место кол-ва страниц?
Размера страницы (или количества записей), видимо?.. Да и лишний запрос к чему?..
maschingan писал(а):Думаю лучше pagination => false, чем pageSize => 100000
Я глядел в исходно коде вообще такой вариант не прокатит, ну и на всякий случай проверил, действительно, сбрасывается к кол-ву по умолчанию(10, установлено в фреймворке, константой).
Если глядеть лучше и пробовать правильно, то такой "вариант прокатывает":

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

        return new CActiveDataProvider($this, array(
            'pagination'=>false,
        ));
...
Аватара пользователя
Kuklovod
Сообщения: 211
Зарегистрирован: 2011.11.22, 08:15

Re: CGridView пагинация показать "все"

Сообщение Kuklovod »

На денвере все хорошо выводятся все 10839 записей, но когда я выполняю

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

            'pagination'=>$_GET['pagination']==1?false:array(
                'pageSize' => 10,
            ),
на хостинге вместо грида <div class="tbl-grid"> </div>, тоесть аякс не чего не грузит.
Если так

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

            'pagination'=>array(
                'pageSize' => $_GET['pagination']==1?1000:10,
            ),
, то грузит по 1000 записей, а если поставить 10000, то тоже аякс грузит пустоту.
В чем может быть дело?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: CGridView пагинация показать "все"

Сообщение samdark »

В логи загляните. Скорее всего всю память скушало.
Аватара пользователя
Kuklovod
Сообщения: 211
Зарегистрирован: 2011.11.22, 08:15

Re: CGridView пагинация показать "все"

Сообщение Kuklovod »

Sam Dark писал(а):В логи загляните. Скорее всего всю память скушало.
это логи которые в папке protected/runtime/application.log? если так то я вычестил все с них, залил выполнил показать "все". Грид не появился, но записей в логе не было.
Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: CGridView пагинация показать "все"

Сообщение andy_s »

Я думаю, что надо всё-таки в еррор логи веб-сервера глядеть.
Ответить