2014-04-21 64 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