1

プロジェクトでドロップダウン ページネーションを作成しようとしていますが、正しく機能していません。ドロップダウンリストで選択した数に関係なく、ページには 10 個のアイテムが表示されます。私が欠けているものは何ですか?

ありがとうございました。

スクリーンショット

ビューコード:

 <?php
    //$dataProvider->pagination->pageSize = 25;

    $pageSize=Yii::app()->user->getState('pageSize',Yii::app()->params['defaultPageSize']); 
    echo CHtml::dropDownList('pageSize',$pageSize,array(5=>5,10=>10,15=>15,20=>20,25=>25,30=>30),
    array('onchange'=>"$.fn.yiiGridView.update('packages-grid',{ data:{pageSize: $(this).val() }})",
    'empty'=>'-- Select Page Range --','style'=>'width:198px;'));

    $this->widget('zii.widgets.CListView', array(
        'id'=>'propertylistview',
        'dataProvider'=>$dataProvider,
            'summaryText'=>'',
        'itemView'=>'_propertyview',
            'sortableAttributes' => array(
                .........
             )
     ));
    ?>

コントローラーコード:

public function actionAdmin(){         
if (isset($_GET['pageSize'])) {
 Yii::app()->user->setState('pageSize',(int)$_GET['pageSize']);
 unset($_GET['pageSize']);}
    $model=new Packages('search');
    $model->unsetAttributes(); 
    if(isset($_GET['Packages']))
        $model->attributes=$_GET['Packages'];       
        $dataProvider=new CActiveDataProvider('Packages'); 
    $this->render('admin',array('model'=>$model,'dataProvider'=>$dataProvider,
    ));
}

私はすでにこれをモデル検索に追加しました

return new CActiveDataProvider(get_class($this),array(
            'pagination'=>array(
                'pageSize'=> Yii::app()->user->getState('pageSize',Yii::app()->params['defaultPageSize']),
            ),
            'criteria'=>$criteria,
    )); 

これをconfig/main.phpに

'params'=>array('defaultPageSize'=> '10'),
4

1 に答える 1

0

ajax 呼び出しを行っていますが、ウィジェットで更新する更新部分を指定していません。ajaxUpdateが解決策です。

そして'onchange'=>"$.fn.yiiGridView.update、CListView を使用しているときに使用しているので、js を次のように変更し'onchange'=>"$.fn.yiiListView.updateます。

<?php
// your code    
$this->widget('zii.widgets.CListView', array(
   'id'=>'propertylistview',
   'ajaxUpdate' => 'propertylistview', //add this line
   'dataProvider'=>$dataProvider,
   'summaryText'=>'',
   'itemView'=>'_propertyview',
   'sortableAttributes' => array(
   //etc.. )
));
?>
于 2014-03-22T08:27:23.903 に答える