2015-09-08 1 views
0

Я работаю над yii TbExtendedGridView. Я написал код для разбивки на страницы, и он работает нормально, но проблема связана с перезагрузкой страницы или изменением gridview. Я хочу сбросить pageSize = размер страницы по умолчанию.

Вот мой код,
Yii Как сбросить pageSize, выбранный из выпадающего списка страниц на странице refresh/reload

Просмотр кода страницы

//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']), 

     ), 
))); 


Модель кодовая страница

'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 из раскрывающегося списка, и у меня будет еще один пейджер в нижней части сетки, поэтому из нижнего пейджера, если я нажму на следующую страницу, тогда в режиме сетки я получаю всего 10 записей. он должен показать мне следующие 20 записей, но он показывает 11-20 –

Смежные вопросы