在Yii框架下工作,我有一个加载并列出不同部分的页面。当然,这是用renderPartial
的一些不同观点来完成的。其中一个部分采用一个数组并显示其中项目的列表。我需要做的是只对这个部分进行分页,最好使用AJAX,这样我就不会在选择页面时重新加载所有内容。
这是问题的第一部分。我已经研究过将CActiveDataProvider
与CListView
一起使用,但是,问题是我显示的是来自与数据库无关的数组的信息。换句话说,创建数组没有任何条件等等,我只有一堆$items
,仅此而已。任何技巧都很感激!
您可以使用CArrayDataProvider
实例作为CListView
的dataProvider
。它有内置的分页支持,尽管您可能需要显式设置分页的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)); ?>