I am new to Yii. I want to implement custom pagination. I want to change the appearance of the pager. How do I change the labels of the pager's links?
I want the links to appear like so:
<< < 1 2 3 4 > >>
instead of their default appearance, which is like this:
[first] [previous] 1 2 3 4 [next] [last]
I am using CListView
to display the data, which I have set up like this:
$this->widget('zii.widgets.CListView', array(
'dataProvider' => $categoryProjects,
'itemView' => '_itemDetailsView',
'ajaxUpdate'=>false,
));
Can anyone please tell me how do I start with it? I've seen some posts but unable to get right information.
Thanks in advance.
You need to set the pager
property of the CListView
. By default, this is a CLinkPager
; you don't need to change that (this component has your needs covered), but you need to configure it:
$this->widget('zii.widgets.CListView', array(
'dataProvider' => $categoryProjects,
'itemView' => '_itemDetailsView',
'ajaxUpdate' => false,
'pager' => array(
'class' => 'CLinkPager',
'firstPageLabel' => '<<',
'prevPageLabel' => '<',
'nextPageLabel' => '>',
'lastPageLabel' => '>>',
),
));
Update: If you want to "bake in" the above custom configuration to all list views in your application, you have to create a new CustomListView
component deriving from CListView
. So you need this class:
Yii::import('zii.widgets.CListView');
class CustomListView extends CListView {
public function init() {
parent::init();
$this->pager = array(
'class' => 'CLinkPager',
'firstPageLabel' => '<<',
'prevPageLabel' => '<',
'nextPageLabel' => '>',
'lastPageLabel' => '>>',
);
}
}
After including this, you can simply use CustomListView
as your list widget instead of zii.widgets.CListView
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With