binc
(Bincweb)
October 22, 2012, 10:41am
1
I have been looking for a ‘Jump to page’ function in the pager, but couldn’t find it in the docs. The only thing I found in the forum when searching for ‘Jump to page’ was a Spanish page.
Since I came up with a quick and dirty but realy simple solution, I’ll share it with you, hoping it will be improved.
I’m using the Gii CRUD code in the admin view. Just above the CGridView code add:
<?php
echo CHtml::textField(ucfirst(Yii::app()->controller->id)."_page",'0',
array('id'=>'jump-to-page',
));
?>
// The CRUDded CGridView
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'user-grid',
'dataProvider' => $model->search(), ETC.....
and add to your jQuery
$('#jump-to-page').change(function(e){
$.fn.yiiGridView.update('user-grid', {
data: $(this).serialize()
});
e.preventDefault();
});
You will need to adjust the css a bit to have the input field aligned with the pagination buttons.
At least one thing to improve : store the present page number as initial value in the input field.
binc
(Bincweb)
October 23, 2012, 10:21am
2
It is too ‘dirty’ to do it like this after all.
I recommend to use the ‘mypager’ extension. Very easy to implement.
http://www.yiiframework.com/extension/mypager/
qingyue
(Cn2156)
July 30, 2013, 7:21am
3
Binc:
I have been looking for a ‘Jump to page’ function in the pager, but couldn’t find it in the docs. The only thing I found in the forum when searching for ‘Jump to page’ was a Spanish page.
Since I came up with a quick and dirty but realy simple solution, I’ll share it with you, hoping it will be improved.
I’m using the Gii CRUD code in the admin view. Just above the CGridView code add:
<?php
echo CHtml::textField(ucfirst(Yii::app()->controller->id)."_page",'0',
array('id'=>'jump-to-page',
));
?>
// The CRUDded CGridView
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'user-grid',
'dataProvider' => $model->search(), ETC.....
and add to your jQuery
$('#jump-to-page').change(function(e){
$.fn.yiiGridView.update('user-grid', {
data: $(this).serialize()
});
e.preventDefault();
});
You will need to adjust the css a bit to have the input field aligned with the pagination buttons.
At least one thing to improve : store the present page number as initial value in the input field.
very very good!
this codes
ucfirst(Yii::app()->controller->id)
replace with
get_class($model)
is better may be.
agree with me ?
qingyue
(Cn2156)
July 30, 2013, 8:04am
4
Binc:
I have been looking for a ‘Jump to page’ function in the pager, but couldn’t find it in the docs. The only thing I found in the forum when searching for ‘Jump to page’ was a Spanish page.
Since I came up with a quick and dirty but realy simple solution, I’ll share it with you, hoping it will be improved.
I’m using the Gii CRUD code in the admin view. Just above the CGridView code add:
<?php
echo CHtml::textField(ucfirst(Yii::app()->controller->id)."_page",'0',
array('id'=>'jump-to-page',
));
?>
// The CRUDded CGridView
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'user-grid',
'dataProvider' => $model->search(), ETC.....
and add to your jQuery
$('#jump-to-page').change(function(e){
$.fn.yiiGridView.update('user-grid', {
data: $(this).serialize()
});
e.preventDefault();
});
You will need to adjust the css a bit to have the input field aligned with the pagination buttons.
At least one thing to improve : store the present page number as initial value in the input field.
if put the input in GridView, it can jump to page only first time. why and how to solve ? Thanks.
'template' => '{items}'.CHtml::textField(ucfirst(Yii::app()->controller->id)."_page",'',array('id'=>'jump-to-page')).'<input type="button" id="jumptopage" value="Go">{pager}{summary}',