【发布时间】:2013-05-14 17:36:30
【问题描述】:
我正在使用 Yii 显示一个列表页面,它通过 zii.widgets.CListView 自动显示在几个页面中。
当用户点击下一页时,url 不会改变。但我需要知道用户正在查看哪个页面。
如何在 Yii 中获取页码?
【问题讨论】:
标签: yii
我正在使用 Yii 显示一个列表页面,它通过 zii.widgets.CListView 自动显示在几个页面中。
当用户点击下一页时,url 不会改变。但我需要知道用户正在查看哪个页面。
如何在 Yii 中获取页码?
【问题讨论】:
标签: yii
在 CViewList 上禁用 Ajax,使用 'ajaxUpdate'=>false
由于 ajax 调用,您不会直接获得当前页码。如果从 CListView 禁用 ajax,则可以在页面加载时获取当前页码。
我的示例控制器
<?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);
?>
【讨论】:
您从数据提供者的CPagination 对象中获取当前页面:
$provider = $model->search();
$page = $provider->pagination->currentPage;
【讨论】:
设置pagination的从零开始的currentPage属性
...
'pagination'=>array(
'pageSize'=>2,
'currentPage'=>1,
),
...
currentPage 返回当前页面从零开始的索引。
尝试在查看页面中获取当前页码,如$cuurentPage=>$pages->currentPage+1,。
【讨论】: