Pagination
Pagination
Приветствую!
Есть виджет CListView который выводит на страницу статьи по 10 штук.
Нужно чтобы при клике на статью отображалась статья, а внизу кнопки для листания статей по одной.
Не могу понять как это сделать?
Как указать пагинатору смещение и где взять номер текущей статьи в этой пагинации?
Благодарен за любые ответы!
Есть виджет CListView который выводит на страницу статьи по 10 штук.
Нужно чтобы при клике на статью отображалась статья, а внизу кнопки для листания статей по одной.
Не могу понять как это сделать?
Как указать пагинатору смещение и где взять номер текущей статьи в этой пагинации?
Благодарен за любые ответы!
Feci quod potui,faciant meliora potentes
Re: Pagination
Вам нужно по сути:
1. при отображении статьи выбрать все статьи
2. в CActiveDataProvider pagination указать pageSize=>1
3. Просчитать, какая по порядку текущая статья (если листалка не начинает с нее).
4. Указать в CActiveDataProvider pagination currentPage=>_то_что_высчитали_
Upd: в конференции недавно обсуждали вопрос, как проще всего узнать, на какой странице элемент. Но кто обсуждал и чем закончилось, не помню. Попробуйте спросите, мб подскажут.
1. при отображении статьи выбрать все статьи
2. в CActiveDataProvider pagination указать pageSize=>1
3. Просчитать, какая по порядку текущая статья (если листалка не начинает с нее).
4. Указать в CActiveDataProvider pagination currentPage=>_то_что_высчитали_
Upd: в конференции недавно обсуждали вопрос, как проще всего узнать, на какой странице элемент. Но кто обсуждал и чем закончилось, не помню. Попробуйте спросите, мб подскажут.
Re: Pagination
Кстати, Pagination работает только с CListView и CGridView? Ему нужен CActiveDataProvider? Мне нужно организовать просмотр ввиде таблицы tumb, где элементы расположены квадратами а не строкой. Через CArrayDataProvider. Как при этом не потерять возможности сортировки, поиска и пагинации? Писать все руками или можно прикрутить всетаки Pagination?
Есть ли где-то такой табличный грид?
Есть ли где-то такой табличный грид?
Re: Pagination
Pagination - это часть CArrayDataProvider. Попробуйте в эту сторону посмотреть. Генерялка страниц наверняка есть в коробке, правда сам я ни разу ей вне коробочных виджетов не пользовался.andreyrud писал(а):Кстати, Pagination работает только с CListView и CGridView? Ему нужен CActiveDataProvider? Мне нужно организовать просмотр ввиде таблицы tumb, где элементы расположены квадратами а не строкой. Через CArrayDataProvider. Как при этом не потерять возможности сортировки, поиска и пагинации? Писать все руками или можно прикрутить всетаки Pagination?
Есть ли где-то такой табличный грид?
-
- Сообщения: 75
- Зарегистрирован: 2011.01.20, 23:52
Re: Pagination
В описании CPagination есть пример использования. По моему как раз то что вам нужно.
http://www.yiiframework.com/doc/api/1.1/CPagination
http://www.yiiframework.com/doc/api/1.1/CBasePager
http://www.yiiframework.com/doc/api/1.1/CPagination
http://www.yiiframework.com/doc/api/1.1/CBasePager
Re: Pagination
Можно и без CListView и CGridView, воспользоваться CLinkPager, но он довольно косячный и не очень гибкий.
Re: Pagination
Вы будете смеяться, но CListView и CGridView по умолчанию как раз используют CLinkPager.Choo писал(а):Можно и без CListView и CGridView, воспользоваться CLinkPager, но он довольно косячный и не очень гибкий.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Pagination
Вот примерчик на тему: http://rmcreative.ru/blog/post/postrani ... ivka-v-yii
Нравится Yii? Давайте сделаем его лучше!.
Re: Pagination
Почему именно табличный?andreyrud писал(а):Мне нужно организовать просмотр ввиде таблицы tumb, где элементы расположены квадратами а не строкой.
Есть ли где-то такой табличный грид?
Берем стандартный _view и там на <div class="view"> добавляем
style="float: left; width: 200px; height: 200px; margin 15px;"
и получаем элементы квадратами.
На каждый пятый (третий, седьмой, ...) добавляем clear: left;
Возможно придется еще что-нибудь добавить, мог ошибиться, но идея должна быть ясна.
Re: Pagination
А откуда взять информацию что данный элемент пятый(третий, седьмой, ...)? А самое главное последний из показанных на странице. Те нужнен сount - число показанных элементов на странице с учетом пагинации и row - номер текущего элемента.Vic писал(а):andreyrud писал(а): Почему именно табличный?
Берем стандартный _view и там на <div class="view"> добавляем
style="float: left; width: 200px; height: 200px; margin 15px;"
и получаем элементы квадратами.
На каждый пятый (третий, седьмой, ...) добавляем clear: left;
Re: Pagination
Sam Dark писал(а):Вот примерчик на тему: http://rmcreative.ru/blog/post/postrani ... ivka-v-yii
Код: Выделить всё
$count=Article::model()->count($criteria);
Article::model()->with('same_table')->count($criteria)