Yii框架:局部视图中的分页


Yii Framework: Pagination in partial view

在Yii框架下工作,我有一个加载并列出不同部分的页面。当然,这是用renderPartial的一些不同观点来完成的。其中一个部分采用一个数组并显示其中项目的列表。我需要做的是只对这个部分进行分页,最好使用AJAX,这样我就不会在选择页面时重新加载所有内容。

这是问题的第一部分。我已经研究过将CActiveDataProviderCListView一起使用,但是,问题是我显示的是来自与数据库无关的数组的信息。换句话说,创建数组没有任何条件等等,我只有一堆$items,仅此而已。任何技巧都很感激!

您可以使用CArrayDataProvider实例作为CListViewdataProvider。它有内置的分页支持,尽管您可能需要显式设置分页的currentPage

您可以在没有CGridView的情况下使用CLinkPager,例如:

控制器内:

$criteria = new CDbCriteria;
$criteria -> order = 'date';
$pages = new CPagination(Posts::model() -> count());
$pages -> pageSize = 50;
$pages -> applyLimit($criteria);
$posts= Posts::model() -> findAll($criteria);
$this -> controller -> render('list', array('posts' => $posts, 'pages' => $pages));

视图:

<?php $this->widget('CLinkPager',array('pages'=>$pages, "cssFile" => false)); ?>
<ul>
<?php foreach($posts as $x => $post): ?>
  <li><?php echo $post -> title ?></li>
<?php endforeach; ?>
</ul>
<?php $this->widget('CLinkPager',array('pages'=>$pages, "cssFile" => false)); ?>