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
嘿感謝您的回覆,我嘗試過這個,它正在爲但是另一個問題就是如果我從下拉菜單中選擇20,那麼我會得到1-20條記錄。在同一頁上,我在網格底部有尋呼機,現在如果我點擊NEXT,那麼我將獲得11 - 20條記錄來代替這個我應該得到21 - 40條記錄 –
當您將下拉列表更改爲20時,它會起作用然後刷新頁面? – devOp
對不起,讓我回復,是的,它適用於我,但還有一個問題是如果我將使用此代碼,然後下拉和重置它工作正常的事情。如果我將從下拉列表中選擇20,並且我在GridView的底部還有一個尋呼機,所以如果我點擊下一頁,然後在網格視圖中,我只能得到10條記錄。它應該顯示我下一個20條記錄,但它顯示11-20 –