在Yii框架下工作,我有一个加载和列出不同部分的页面。当然,这是通过renderPartial
几个不同的视图完成的。其中一个部分采用数组并显示其中的项目列表。我需要做的是只对这一部分进行分页,最好是使用AJAX,所以我不会在页面选择时重新加载所有内容。
这是问题的第一部分。我已经考虑过将CActiveDataProvider
与CListView
一起使用,但问题是,我显示的数据来自与数据库无关的数组。换句话说,创建数组没有条件等等,我只有一堆$items
并且就此而言。任何提示赞赏!
答案 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)); ?>