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

时间:2014-04-21 09:34:40

标签: php ajax yii pagination

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

这是问题的第一部分。我已经考虑过将CActiveDataProviderCListView一起使用,但问题是,我显示的数据来自与数据库无关的数组。换句话说,创建数组没有条件等等,我只有一堆$items并且就此而言。任何提示赞赏!

2 个答案:

答案 0 :(得分:2)

您可以将CArrayDataProvider实例用作dataProvider的{​​{1}}。它具有内置的分页支持,但您可能必须明确设置分页CListView

答案 1 :(得分:1)

你可以在没有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)); ?>