Yii Framework v1.1.10 绫诲弬鑰

CLinkPager

system.web.widgets.pagers
缁ф壙 class CLinkPager » CBasePager » CWidget » CBaseController » CComponent
婧愯嚜 1.0
鐗堟湰 $Id: CLinkPager.php 3515 2011-12-28 12:29:24Z mdomba $
婧愮爜 framework/web/widgets/pagers/CLinkPager.php
CLinkPager鐢ㄤ簬鏄剧ず鍒嗛〉鐨勮秴閾炬帴鍒楄〃銆

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
actionPrefix string actions鐨処D鐨勫墠缂銆 褰撳井浠跺湪CController::actions涓0鏄庝簡 鍔ㄤ綔鎻愪緵鑰咃紝鍙互涓哄叾鍔ㄤ綔鐨処D鎸囧畾鍓嶇紑浠ュ尯鍒 浜庡埆鐨勫井浠舵垨鎺у埗鍣ㄣ傚綋寰欢鐢ㄤ簬鎺у埗鍣 鐨勮鍥句腑鏃讹紝蹇呴』閰嶇疆鍚屾牱鐨勫墠缂銆 CWidget
controller CController 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ CWidget
cssFile mixed 鐢ㄤ簬鎸備欢鐨凜SS鏍峰紡鏂囦欢銆傞粯璁ゆ槸 null锛 鎰忓懗鐫灏嗕娇鐢ㄥ寘鍚湪鎸備欢閲岀殑CSS鏍峰紡銆 濡傛灉鏄痜alse锛屽氨涓嶄細浣跨敤CSS鏍峰紡銆傚鏋滃畾涔変簡璇ュ睘鎬э紝 浣跨敤璇ユ寕浠舵椂鎸囧畾鐨凜SS浼氳鍖呭惈杩涙潵銆 CLinkPager
currentPage integer 褰撳墠椤电殑绱㈠紩锛堜粠0寮濮嬶級銆傜己鐪佷负0銆 CBasePager
firstPageLabel string 鈥滅涓椤碘濇寜閽殑鏂囨湰銆傞粯璁ゆ槸鈥<< First鈥樸 CLinkPager
htmlOptions array 鍒嗛〉鏍囩鐨凥TML灞炴с CLinkPager
id string 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
itemCount integer 椤圭洰鐨勬婚噺銆 CBasePager
lastPageLabel string 鈥滄渶鍚庝竴椤碘濇寜閽殑鏂囨湰銆傞粯璁ゆ槸鈥橪ast >>鈥樸 CLinkPager
maxButtonCount integer 瑕佹樉绀虹殑鏈澶氬垎椤垫寜閽暟銆傞粯璁10銆 CLinkPager
nextPageLabel string 鈥滀笅涓椤碘濇寜閽殑鏂囨湰銆傞粯璁も楴ext >鈥欍 CLinkPager
owner CBaseController 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
pageCount integer 椤垫暟 CBasePager
pageSize integer 姣忛〉鍖呭惈椤圭洰鐨勬暟閲忋 CBasePager
pages CPagination 杩斿洖姝ager鎵鐢ㄧ殑鍒嗛〉淇℃伅銆 CBasePager
prevPageLabel string 鈥滀笂涓椤碘濇寜閽殑鏂囨湰銆傞粯璁も< Previous鈥欍 CLinkPager
skin mixed 寰欢浣跨敤鐨勭毊鑲ょ殑鍚嶇О銆傞粯璁や负鈥渄efault鈥濄 濡傛灉姝ゅ睘鎬ц缃负false锛屽井浠跺皢涓嶄細鏈夌毊鑲よ浣跨敤銆 CWidget
viewPath string 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget

鍙椾繚鎶ゅ睘鎬

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
pageRange array 瑕佹樉绀虹殑寮濮嬪拰缁撴潫椤点 CLinkPager

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__construct() 鏋勯犲櫒銆 CWidget
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
actions() 杩斿洖姝idget浣跨敤鐨勫姩浣滅殑鍒楄〃銆 CWidget
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
beginCache() Begins fragment caching. CBaseController
beginClip() Begins recording a clip. CBaseController
beginContent() Begins the rendering of content that is to be decorated by the specified view. CBaseController
beginWidget() Creates a widget and executes it. CBaseController
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
createWidget() Creates a widget and initializes it. CBaseController
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
endCache() Ends fragment caching. CBaseController
endClip() Ends recording a clip. CBaseController
endContent() Ends the rendering of content. CBaseController
endWidget() Ends the execution of the named widget. CBaseController
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getController() 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ CWidget
getCurrentPage() 杩斿洖褰撳墠椤电殑绱㈠紩锛堜粠0寮濮嬶級銆傜己鐪佷负0銆 CBasePager
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getId() 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
getItemCount() 杩斿洖椤圭洰鐨勬婚噺銆 CBasePager
getOwner() 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
getPageCount() 杩斿洖椤垫暟 CBasePager
getPageSize() 杩斿洖姣忛〉鍖呭惈椤圭洰鐨勬暟閲忋 CBasePager
getPages() 杩斿洖姝ager鎵鐢ㄧ殑鍒嗛〉淇℃伅銆 CBasePager
getViewFile() 鏍规嵁瑙嗗浘鍚嶆煡鎵捐鍥炬枃浠躲 CWidget
getViewPath() 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
init() 閫氳繃璁剧疆涓浜涢粯璁ゅ睘鎬у煎垵濮嬪寲pager銆 CLinkPager
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
registerClientScript() 鍔犺浇鎵闇鐨勫鎴风鑴氭湰锛堜富瑕佹槸CSS鏂囦欢锛夈 CLinkPager
registerCssFile() 鍔犺浇鎵闇鐨凜SS鏂囦欢銆 CLinkPager
render() 娓叉煋涓涓鍥俱 CWidget
renderFile() Renders a view file. CBaseController
renderInternal() Renders a view file. CBaseController
run() 鎵ц杩欎釜鎸備欢銆 CLinkPager
setCurrentPage() 璁剧疆褰撳墠椤电殑绱㈠紩锛堜粠0寮濮嬶級銆 CBasePager
setId() 璁剧疆姝ゅ井浠剁殑ID銆 CWidget
setItemCount() 璁剧疆椤圭洰鐨勬婚噺銆 CBasePager
setPageSize() 璁剧疆姣忛〉鍖呭惈鐨勯」鐩殑鏁伴噺 CBasePager
setPages() 璁剧疆姝ager鎵鐢ㄧ殑鍒嗛〉淇℃伅銆 CBasePager
widget() Creates a widget and executes it. CBaseController

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
createPageButton() 鍒涘缓涓涓垎椤垫寜閽 CLinkPager
createPageButtons() 鍒涘缓鍒嗛〉鎸夐挳銆 CLinkPager
createPageUrl() 鍒涘缓鍒嗛〉閫傜敤鐨刄RL銆 CBasePager
createPages() 鍒涘缓缂虹渷鍒嗛〉銆 CBasePager
getPageRange() 杩斿洖瑕佹樉绀虹殑寮濮嬪拰缁撴潫椤点 CLinkPager

灞炴ц缁

cssFile 灞炴
public mixed $cssFile;

鐢ㄤ簬鎸備欢鐨凜SS鏍峰紡鏂囦欢銆傞粯璁ゆ槸 null锛 鎰忓懗鐫灏嗕娇鐢ㄥ寘鍚湪鎸備欢閲岀殑CSS鏍峰紡銆 濡傛灉鏄痜alse锛屽氨涓嶄細浣跨敤CSS鏍峰紡銆傚鏋滃畾涔変簡璇ュ睘鎬э紝 浣跨敤璇ユ寕浠舵椂鎸囧畾鐨凜SS浼氳鍖呭惈杩涙潵銆

firstPageLabel 灞炴
public string $firstPageLabel;

鈥滅涓椤碘濇寜閽殑鏂囨湰銆傞粯璁ゆ槸鈥<< First鈥樸

public string $footer;

鍒嗛〉鎸夐挳鍚庨潰鏄剧ず鐨勬枃鏈

header 灞炴
public string $header;

鍒嗛〉鎸夐挳鍓嶉潰鏄剧ず鐨勬枃鏈傞粯璁ゆ槸鈥橤o to page: 鈥樸

htmlOptions 灞炴
public array $htmlOptions;

鍒嗛〉鏍囩鐨凥TML灞炴с

lastPageLabel 灞炴
public string $lastPageLabel;

鈥滄渶鍚庝竴椤碘濇寜閽殑鏂囨湰銆傞粯璁ゆ槸鈥橪ast >>鈥樸

maxButtonCount 灞炴
public integer $maxButtonCount;

瑕佹樉绀虹殑鏈澶氬垎椤垫寜閽暟銆傞粯璁10銆

nextPageLabel 灞炴
public string $nextPageLabel;

鈥滀笅涓椤碘濇寜閽殑鏂囨湰銆傞粯璁も楴ext >鈥欍

pageRange 灞炴 鍙
protected array getPageRange()

瑕佹樉绀虹殑寮濮嬪拰缁撴潫椤点

prevPageLabel 灞炴
public string $prevPageLabel;

鈥滀笂涓椤碘濇寜閽殑鏂囨湰銆傞粯璁も< Previous鈥欍

鏂规硶璇︾粏

createPageButton() 鏂规硶
protected string createPageButton(string $label, integer $page, string $class, boolean $hidden, boolean $selected)
$label string 鎸夐挳涓婄殑鏂囨湰
$page integer 椤电爜
$class string 鍒嗛〉鎸夐挳鐨凜SS鏍峰紡銆傝繖鍙互鏄檖age鈥橈紝鈥檉irst鈥橈紝鈥檒ast鈥橈紝鈥檔ext鈥樻垨鈥檖revious鈥樸
$hidden boolean 鏄惁鏄剧ず鍒嗛〉鎸夐挳
$selected boolean 鏄惁閫変腑鍒嗛〉鎸夐挳
{return} string 鐢熸垚鐨勬寜閽
婧愮爜锛 framework/web/widgets/pagers/CLinkPager.php#152 (鏄剧ず)
protected function createPageButton($label,$page,$class,$hidden,$selected)
{
    if(
$hidden || $selected)
        
$class.=' '.($hidden self::CSS_HIDDEN_PAGE self::CSS_SELECTED_PAGE);
    return 
'<li class="'.$class.'">'.CHtml::link($label,$this->createPageUrl($page)).'</li>';
}

鍒涘缓涓涓垎椤垫寜閽 浣犲彲浠ラ噸鍐欒繖涓柟娉曟潵瀹氬埗鍒嗛〉鎸夐挳銆

createPageButtons() 鏂规硶
protected array createPageButtons()
{return} array 鍒嗛〉鎸夐挳鐨勫垪琛紙杩斿洖鐨勬槸HTML浠g爜锛夈
婧愮爜锛 framework/web/widgets/pagers/CLinkPager.php#110 (鏄剧ず)
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);

    
// internal pages
    
for($i=$beginPage;$i<=$endPage;++$i)
        
$buttons[]=$this->createPageButton($i+1,$i,self::CSS_INTERNAL_PAGE,false,$i==$currentPage);

    
// 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;
}

鍒涘缓鍒嗛〉鎸夐挳銆

getPageRange() 鏂规硶
protected array getPageRange()
{return} array 瑕佹樉绀虹殑寮濮嬪拰缁撴潫椤点
婧愮爜锛 framework/web/widgets/pagers/CLinkPager.php#162 (鏄剧ず)
protected function getPageRange()
{
    
$currentPage=$this->getCurrentPage();
    
$pageCount=$this->getPageCount();

    
$beginPage=max(0$currentPage-(int)($this->maxButtonCount/2));
    if((
$endPage=$beginPage+$this->maxButtonCount-1)>=$pageCount)
    {
        
$endPage=$pageCount-1;
        
$beginPage=max(0,$endPage-$this->maxButtonCount+1);
    }
    return array(
$beginPage,$endPage);
}

init() 鏂规硶
public void init()
婧愮爜锛 framework/web/widgets/pagers/CLinkPager.php#72 (鏄剧ず)
public function init()
{
    if(
$this->nextPageLabel===null)
        
$this->nextPageLabel=Yii::t('yii','Next &gt;');
    if(
$this->prevPageLabel===null)
        
$this->prevPageLabel=Yii::t('yii','&lt; Previous');
    if(
$this->firstPageLabel===null)
        
$this->firstPageLabel=Yii::t('yii','&lt;&lt; First');
    if(
$this->lastPageLabel===null)
        
$this->lastPageLabel=Yii::t('yii','Last &gt;&gt;');
    if(
$this->header===null)
        
$this->header=Yii::t('yii','Go to page: ');

    if(!isset(
$this->htmlOptions['id']))
        
$this->htmlOptions['id']=$this->getId();
    if(!isset(
$this->htmlOptions['class']))
        
$this->htmlOptions['class']='yiiPager';
}

閫氳繃璁剧疆涓浜涢粯璁ゅ睘鎬у煎垵濮嬪寲pager銆

registerClientScript() 鏂规硶
public void registerClientScript()
婧愮爜锛 framework/web/widgets/pagers/CLinkPager.php#179 (鏄剧ず)
public function registerClientScript()
{
    if(
$this->cssFile!==false)
        
self::registerCssFile($this->cssFile);
}

鍔犺浇鎵闇鐨勫鎴风鑴氭湰锛堜富瑕佹槸CSS鏂囦欢锛夈

registerCssFile() 鏂规硶
public static void registerCssFile(string $url=NULL)
$url string CSS URL銆傚鏋滀负null锛岄偅涔堜細浣跨敤榛樿鐨凜SS URL銆
婧愮爜锛 framework/web/widgets/pagers/CLinkPager.php#189 (鏄剧ず)
public static function registerCssFile($url=null)
{
    if(
$url===null)
        
$url=CHtml::asset(Yii::getPathOfAlias('system.web.widgets.pagers.pager').'.css');
    
Yii::app()->getClientScript()->registerCssFile($url);
}

鍔犺浇鎵闇鐨凜SS鏂囦欢銆

run() 鏂规硶
public void run()
婧愮爜锛 framework/web/widgets/pagers/CLinkPager.php#95 (鏄剧ず)
public function run()
{
    
$this->registerClientScript();
    
$buttons=$this->createPageButtons();
    if(empty(
$buttons))
        return;
    echo 
$this->header;
    echo 
CHtml::tag('ul',$this->htmlOptions,implode("\n",$buttons));
    echo 
$this->footer;
}

鎵ц杩欎釜鎸備欢銆 褰撴樉绀虹敓鎴愮殑鍒嗛〉鎸夐挳鏃惰繖涓柟娉曚細瑕嗙洊鐖剁被鐨勫疄鐜般

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.