2016-05-19 14 views
1

div内の他のコントローラのインデックスページ(コントローラの名前はObavjestenjaController)をサイト/インデックスページ内で部分的にレンダリングします。私は、他のコントローラで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> 

をし、ページが必要なのdivに表示されます。何が失敗するかは、CListViewからのページスワッピングです。デフォルトでは、私は第2ページに変更するとobavjestenja/index & Obavjestenja_page = 2ページにリダイレクトしたいが、同じページ(サイト/インデックス)内にとどまり、div内のページを正しく変更したい。どうすればこれを達成できますか?

EDIT:デフォルトでAJAXが私をリダイレクトしていました。カスタムのCListViewウィジェットをそこに作成し、対応するModelからdataProviderを提供し、その結果を表示することで、サイト/インデックスのdivを編集しました。魅力的な作品。

サイト/インデックス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

サイト/インデックスで、RunControllerの代わりにRenderPartialを使用してみてください。

<div>タグの間で以下のコードを使用してください。ここで

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

は完全なコード

<div id="obavjestenjadiv"> 
<?php $this->renderPartial('//Obavjestenja/indexPartial'); ?> 
</div> 
ある
関連する問題