2015-09-08 34 views
0

我正在使用yii TbExtendedGridView。我已經從下拉菜單編寫分頁代碼,它工作正常,但問題是在頁面重新加載或更改gridview我想重置pageSize =默認頁面大小。

這裏是我的代碼
Yii如何重置頁面大小從下拉頁面中選擇頁面刷新/重新加載

查看頁面代碼

//pagination dropdown start 
$pageSize=Yii::app()->user->getState('pageSizeUserList',Yii::app()->params['defaultPageSize']); 
//pagination dropdown end 

$this->widget('booster.widgets.TbExtendedGridView', array(
    'id' => 'UserList', 
    'type' => 'striped', 
    'dataProvider'=>$model->search(), 
    'filter' => $model, 
//pagination dropdown start 
    'summaryText'=>'Rows per page '. 
    CHtml::dropDownList('pageSizeUserList', $pageSize, Yii::app()->params['pageSizeOptions'], 
      array('class'=>'change-pageSize', 
        'onchange'=>"$.fn.yiiGridView.update('UserList',{ data:{ pageSizeUserList: $(this).val() }})")). 
        ' Displaying {start}-{end} of {count} result(s)', 
//pagination dropdown end 
    'template' => "{summary}{items}{pager}", 
    'ajaxVar' => 'ajax', 
    'ajaxUpdate' => 'UserList', 
    'columns'=>array(
     array(
      'name' => 'user_name', 
      'type' => 'raw', 
      'value' => 'CHtml::link(CHtml::encode(($data->profile && $data->profile->name()) ? $data->profile->name() : $data->username), array("/user/user/view", "id" => $data->id))', 
      'filter' => CHtml::activeTextField($model, 'candidate_name', ['class'=>'form-control small']), 

     ), 
))); 


Model頁面代碼

'pagination'=>array(
       'pageSize'=> Yii::app()->user->getState('pageSizeUserList',Yii::app()->params['defaultPageSize']), 
     ), 


控制器頁面代碼

//code for pagination start 
public function actionAdmin($renderPartial = NULL) { 
    if (isset($_GET['pageSizeUserList'])) { 
     Yii::app()->user->setState('pageSizeUserList',(int)$_GET['pageSizeUserList']); 
     unset($_GET['pageSizeUserList']); 
    } 
} 
//code for pagination end 

回答

1

有你在控制器頁面代碼嘗試這樣做:

//code for pagination start 
public function actionAdmin($renderPartial = NULL) { 
    Yii::app()->user->setState('pageSizeUserList', Yii::app()->params['defaultPageSize']);  
    if (isset($_GET['pageSizeUserList'])) { 
     Yii::app()->user->setState('pageSizeUserList',(int)$_GET['pageSizeUserList']); 
    } 
} 
//code for pagination end 

在模型尋呼碼有行中的最後一個逗號之前一個分號,其應該刪除

+0

嘿感謝您的回覆,我嘗試過這個,它正在爲但是另一個問題就是如果我從下拉菜單中選擇20,那麼我會得到1-20條記錄。在同一頁上,我在網格底部有尋呼機,現在如果我點擊NEXT,那麼我將獲得11 - 20條記錄來代替這個我應該得到21 - 40條記錄 –

+0

當您將下拉列表更改爲20時,它會起作用然後刷新頁面? – devOp

+0

對不起,讓我回復,是的,它適用於我,但還有一個問題是如果我將使用此代碼,然後下拉和重置它工作正常的事情。如果我將從下拉列表中選擇20,並且我在GridView的底部還有一個尋呼機,所以如果我點擊下一頁,然後在網格視圖中,我只能得到10條記錄。它應該顯示我下一個20條記錄,但它顯示11-20 –