2014-04-21 65 views
0

在Yii框架下工作,我有一个页面加载并列出不同的部分。当然,这与renderPartial几个不同的意见。其中一个部分接受一个数组并显示其中的项目列表。我需要做的是仅为本节分页,最好使用AJAX,因此我不会在页面选择时重新加载所有内容。Yii框架:部分视图分页

这是问题的第一部分。我研究过使用CActiveDataProviderCListView,但是,问题在于我显示的数据与数据库无关。换句话说,没有条件等来创建数组,我只是有一堆$items,就是这样。任何提示赞赏!

回答

2

可以使用CArrayDataProvider实例作为dataProviderCListView。它具有内置的分页支持,但您可能必须明确设置分页的currentPage

+0

我想弄清楚是否有可能使用CArrayDataProvider与常规数组,而不是与数据库相关的东西,因为它是在我的情况? – mmvsbg

+0

是的。你有没有尝试过一些不起作用的东西? – topher

+0

实际上有几件事情,但我太过于裹在代码中。我会清理它并重新开始,然后如果我还在挣扎,我会更新这个问题。谢谢! – mmvsbg

1

可以使用CLinkPager而不CGridView,有一个例子:

在控制器:

$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)); ?> 
+0

这里的问题是我没有标准。我只是有一个与数据库无关的$ items的数组,所以applyLimit部分不能为我工作。 – mmvsbg