2013-05-14 2 views
0

Я использую Yii, чтобы отобразить страницу списка, которая показана на нескольких страницах автоматически через zii.widgets.CListView.Как получить номер страницы в Yii

Когда пользователь нажимает на следующую страницу, URL-адрес не изменяется. Но мне нужно знать, какую страницу просматривает пользователь.

Как я могу получить номер страницы в Yii?

ответ

1

Отключить Ajax на CViewList с «ajaxUpdate» => ложный

Вы не получите номер текущей страницы непосредственно из-за вызовов ajax. Если вы отключите ajax от CListView, вы сможете получить текущие номера страниц при загрузке страницы.

Мой Sample контроллер

 <?php 
    $dataProvider = new CActiveDataProvider('MyModel', array('pagination' => array('pageSize' => 3))); 
    $this->render('MyViewPage', array('dataProvider' => $dataProvider)); 
    ?> 

Теперь Проверьте мой взгляд

<?php 
    $this->widget('zii.widgets.grid.CGridView', 
     array(
       'dataProvider' => $dataProvider, 
       'ajaxUpdate'=>false 
      )); 

    echo "Current Page Number is: ".(int)($dataProvider->pagination->getCurrentPage()+1); 
    ?> 
+0

Это замечательно, это работает. Спасибо за Ваш ответ. – user1450627

0

Установите нуля currentPage атрибут pagination

... 
'pagination'=>array(
    'pageSize'=>2, 
    'currentPage'=>1, 
), 
... 

currentPage возвращает отсчитываемый от нуля индекс текущей страницы.

Попробуйте получить номер текущей страницы, например, $cuurentPage=>$pages->currentPage+1, на странице просмотра.

+0

Спасибо за ваш ответ, но я не ясно, на вашей точке. Мой вопрос должен быть, есть ли что-то вроде CPagination-> getPageNum(), чтобы получить текущий номер страницы? – user1450627

+0

Отвечено обновлено. –

0

Вы получаете текущую страницу из CPagination объекта поставщика данных:

$provider = $model->search(); 
$page = $provider->pagination->currentPage; 
+0

Я могу получить параметр страницы, но это всегда 0. Что случилось? – user1450627