是否可以按月对网格视图进行分页?我猜我可以通过 ActiveDataProvider 添加标准并创建导航以每月生成结果来实现这一点。但是 Yii 中是否已经有一种简单的方法或内置的东西?
2 回答
分页根据返回的结果数起作用。查询中的Maybegroup by
子句将是执行此操作的最佳方式。
这个话题也可能对你有帮助。如何在 Yii CListView 中按日期对项目进行分组?
和这个:
http://www.yiiframework.com/forum/index.php/topic/39202-cgridview-datas-group-by-months/
这可能会在 Dataprovider 分页部分或使用 CPagination 中完成。给出的例子
function actionIndex(){
$criteria=new CDbCriteria();
$count=Article::model()->count($criteria);
$pages=new CPagination($count);
// results per page
$pages->pageSize=10;
$pages->applyLimit($criteria);
$models=Article::model()->findAll($criteria);
$this->render('index', array(
'models' => $models,
'pages' => $pages
));
}
这里是可用的属性
- 当前页面
- 项目计数
- 限制
- 抵消
- 页数
- 页面大小
- 页面变量
- 参数
- 路线
- 验证当前页面
您可以手动将 pageCount 设置为 12,或者在传递正确的值之前先检查每个月的数据。
您最好的选择是然后查看 pageSize 并查看是否有传递这个值数组(即每个月的计数)
我一直无法在这方面找到任何更充分的信息,这令人惊讶,因为其他人尝试这样做似乎是相当合乎逻辑的。
也许尝试在 Yii 论坛上发帖,因为我以前在那里取得了很好的成功。
有关上述信息,请参阅以下链接。
http://www.yiiframework.com/doc/api/1.1/CPagination
更新
http://www.yiiframework.com/forum/index.php/topic/42936-solved-custom-page-size-for-cgridview-error/
http://www.ramirezcobos.com/2010/11/30/custom-page-size-for-cgridview/