2012-06-29 27 views
0

是有辦法自定義的Yii CListView中分頁對象,以顯示Yii的CListView中的分頁定製

下一頁n頁

而不是

以前1,2,3接下來的1?

感謝

+0

[文件](http://www.yiiframework.com/ doc/api/1.1/CLinkPager#maxButtonCount-detail) – adamors

+0

不是答案,我需要它說最新頁面的最大頁數 – sam

+0

請在* proper *英語中重寫你的問題,因爲我不知道你在找什麼。 – adamors

回答

3

你不能簡單地傳遞參數給CLinkPager,以便修改其輸出做到這一點。所以,沒有更優雅的方法

但是你可以很容易通過擴展CLinkPager覆蓋尋呼機類,只是改變createPageButtons() - 以下列方式方法:

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; 
} 
} 
+1

+1,除了一些錯誤(我認爲錯別字)這應該工作 –

+0

錯別字糾正,對不起,它晚了;) – burnedikt

+0

多數民衆贊成在偉大,感謝您的幫助burnedkit和bool.dev – sam