2016-05-19 59 views
1

所以我想部分渲染另一個控制器的索引頁面(控制器的名字是ObavjestenjaController)在我的網站/索引頁內,在一個div內。我在其他控制器定義actionIndexPartial,它看起來像這樣:Yii renderPartial索引視圖頁面變化時重定向

public function actionIndexPartial() 
{ 
    $dataProvider=new CActiveDataProvider('Obavjestenja', array(
     'pagination' => array('pageSize'=>3,), 
    )); 
    $this->renderPartial('index',array(
     'dataProvider'=>$dataProvider, 
    )); 
} 

在我的網站/指數,我有這個div:

<div id="obavjestenjadiv"> 
    <?php 
     Yii::app()->runController('Obavjestenja/indexPartial'); 
    ?> 
</div> 

和頁面顯示在需要的股利。從CListView切換頁面失敗。默認情況下,當我更改爲第二頁時,它希望將我重定向到obavjestenja/index & Obavjestenja_page = 2頁面,但我希望保留在同一頁面(站點/索引)內,並且要在div內正確更改頁面。我怎樣才能做到這一點?

編輯:默認情況下,AJAX將我重定向到那裏。我通過在那裏創建了自定義的CListView小部件來編輯我的div在網站/索引中,從相應的模型中爲它​​提供dataProvider並在其中顯示結果。像魅力一樣工作。

網站/ DIV指數:

<?php 
    $dataProvider = new CActiveDataProvider('Obavjestenja', array(
     'pagination' => array('pageSize'=>3,), 
    )); 
    $this->widget('zii.widgets.CListView', array(
     'dataProvider'=>$dataProvider, 
     'itemView'=>'//obavjestenja/_view', 
    )); 
?> 

唯一的一點是,當AJAX刷新CListView中,它返回我的頁面的頂部。我能避免這種情況嗎?謝謝,希望我的解決方案能幫助你。

回答

0

在您的網站/索引中嘗試使用RenderPartial而不是RunController。

使用下面的代碼<div>標籤。

$this->renderPartial('//Obavjestenja/indexPartial'); 

下面是完整的代碼

<div id="obavjestenjadiv"> 
<?php $this->renderPartial('//Obavjestenja/indexPartial'); ?> 
</div>