在 Yii 中更改页面标签?

2022-01-04 00:00:00 php pagination yii paging

我想更改 Yii 中的页面标签.

I would like to change the the labels of pages in Yii.

我使用 Zii.widegt.CListView 来显示项目列表.yii 分页的默认结构是 [previous] 1 2 4 5 6 7 [next] 需要的结构是 <1....10 11 12 13 14 ....40 >.

I used Zii.widegt.CListView to show the list of items. The default structure of yii pagination is [previous] 1 2 4 5 6 7 [next] required structure is < 1....10 11 12 13 14 ....40 >.

我阅读了如何自定义Yii 中寻呼机的标签?",这很有帮助,但是如何将 firstPageLabel 显示为页码 1 而不是 <<lastPageLabel 为 40 而不是 >>.

I read "How can I customize the labels for the pager in Yii?" which is helpful, but how can I show the firstPageLabel as page number 1 instead of << and lastPageLabel as 40 instead of >>.

推荐答案

如果您找不到将总项目数(即 40)传递给 lastPageLabel 覆盖的方法,您将需要覆盖 CLinkPager 类才能自动完成这项工作.$lastPageLabel 在当前实现中是静态的,不提供对itemCount"等变量的访问.可以看到代码:

If you can't find a way to pass in the total item count (i.e. 40) to the lastPageLabel override, you will need to override the CLinkPager class to have this work automatically. The $lastPageLabel is static in the current implementation and does not provide access to variables like "itemCount". You can see the code:

$buttons[]=$this->createPageButton($this->lastPageLabel,$pageCount-1,self::CSS_LAST_PAGE,$currentPage>=$pageCount-1,false);

它只是回显 $this->lastPageLabel,它是静态文本.

It just echos $this->lastPageLabel, which is static text.

如果你制作了一个新的寻呼机(比如,MyLinkPager),像这样使用它:

If you make a new pager (called, say, MyLinkPager), use it like so:

$this->widget('zii.widgets.CListView', array(
        'dataProvider' => $categoryProjects,
        'itemView'     => '_itemDetailsView',
        'ajaxUpdate'   => false,
        'pager'        => array(
                            'class'          => 'MyLinkPager', // here is your pager
                            'firstPageLabel' => '<<',
                            'prevPageLabel'  => '<',
                            'nextPageLabel'  => '>',
                            'lastPageLabel'  => '>>',
                          ),
    ));

相关文章