0

Yii CListView Pagination オブジェクトをカスタマイズして表示する方法はありますか

前の n ページ中 1 ページ 次

むしろその後

前へ 1,2,3 次へ ?

ありがとう

4

2 に答える 2

3

出力を変更するために CLinkPager にパラメーターを渡すだけでは、これを行うことはできません。したがって、これ以上エレガントな方法はありません。

ただし、CLinkPager を拡張することで Pager クラスを非常に簡単にオーバーライドし、createPageButtons()-Method を次のように変更するだけです。

Yii::import('web.widgets.pagers.CLinkPager');
class YourLinkPager extends CLinkPager{
    /**
 * Creates the page buttons.
 * @return array a list of page buttons (in HTML code).
 */
protected function createPageButtons()
{
    if(($pageCount=$this->getPageCount())<=1)
        return array();

    list($beginPage,$endPage)=$this->getPageRange();
    $currentPage=$this->getCurrentPage(false); // currentPage is calculated in getPageRange()
    $buttons=array();

    // first page
    $buttons[]=$this->createPageButton($this->firstPageLabel,0,self::CSS_FIRST_PAGE,$currentPage<=0,false);

    // prev page
    if(($page=$currentPage-1)<0)
        $page=0;
    $buttons[]=$this->createPageButton($this->prevPageLabel,$page,self::CSS_PREVIOUS_PAGE,$currentPage<=0,false);

    /* 
             * !!! change has been made here !!!
             */
    $buttons[]='<li>Page '.$this->getCurrentPage(false).' of '.$this->getPageCount().'</li>';

    // next page
    if(($page=$currentPage+1)>=$pageCount-1)
        $page=$pageCount-1;
    $buttons[]=$this->createPageButton($this->nextPageLabel,$page,self::CSS_NEXT_PAGE,$currentPage>=$pageCount-1,false);

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

    return $buttons;
}
}
于 2012-06-29T22:42:10.440 に答える
0

http://www.yiiframework.com/forum/index.php/topic/5776-customise-the-clinkpager/

于 2012-06-29T09:48:54.267 に答える