CLinkPager

优质
小牛编辑
128浏览
2023-12-01
所有包 | 属性 | 方法
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用于显示分页的超链接列表。

公共属性

隐藏继承属性

属性类型描述定义在
actionPrefixstringactions的ID的前缀。 当微件在CController::actions中声明了 动作提供者,可以为其动作的ID指定前缀以区别 于别的微件或控制器。当微件用于控制器 的视图中时,必须配置同样的前缀。CWidget
controllerCController返回此微件所属的控制器。CWidget
cssFilemixed用于挂件的CSS样式文件。默认是 null, 意味着将使用包含在挂件里的CSS样式。 如果是false,就不会使用CSS样式。如果定义了该属性, 使用该挂件时指定的CSS会被包含进来。CLinkPager
currentPageinteger当前页的索引(从0开始)。缺省为0。CBasePager
firstPageLabelstring“第一页”按钮的文本。默认是’<< First‘。CLinkPager
footerstring分页按钮后面显示的文本。CLinkPager
headerstring分页按钮前面显示的文本。默认是’Go to page: ‘。CLinkPager
htmlOptionsarray分页标签的HTML属性。CLinkPager
idstring返回此微件的ID。如果需要的话,将生产一个新的ID并将其返回。CWidget
itemCountinteger项目的总量。CBasePager
lastPageLabelstring“最后一页”按钮的文本。默认是’Last >>‘。CLinkPager
maxButtonCountinteger要显示的最多分页按钮数。默认10。CLinkPager
nextPageLabelstring“下一页”按钮的文本。默认‘Next >’。CLinkPager
ownerCBaseController返回此微件的所有者或创建者。CWidget
pageCountinteger页数CBasePager
pageSizeinteger每页包含项目的数量。CBasePager
pagesCPagination返回此pager所用的分页信息。CBasePager
prevPageLabelstring“上一页”按钮的文本。默认‘< Previous’。CLinkPager
skinmixed微件使用的皮肤的名称。默认为“default”。 如果此属性设置为false,微件将不会有皮肤被使用。CWidget
viewPathstring返回包含此微件所需的视图文件的路径。CWidget

受保护属性

隐藏继承属性

属性类型描述定义在
pageRangearray要显示的开始和结束页。CLinkPager

公共方法

隐藏继承方法

方法描述定义在
__call()如果类中没有调的方法名,则调用这个方法。CComponent
__construct()构造器。CWidget
__get()返回一个属性值、一个事件处理程序列表或一个行为名称。CComponent
__isset()检查一个属性是否为null。CComponent
__set()设置一个组件的属性值。CComponent
__unset()设置一个组件的属性为null。CComponent
actions()返回此widget使用的动作的列表。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()计算一个PHP表达式,或根据组件上下文执行回调。CComponent
getController()返回此微件所属的控制器。CWidget
getCurrentPage()返回当前页的索引(从0开始)。缺省为0。CBasePager
getEventHandlers()返回一个事件的附加处理程序列表。CComponent
getId()返回此微件的ID。如果需要的话,将生产一个新的ID并将其返回。CWidget
getItemCount()返回项目的总量。CBasePager
getOwner()返回此微件的所有者或创建者。CWidget
getPageCount()返回页数CBasePager
getPageSize()返回每页包含项目的数量。CBasePager
getPages()返回此pager所用的分页信息。CBasePager
getViewFile()根据视图名查找视图文件。CWidget
getViewPath()返回包含此微件所需的视图文件的路径。CWidget
hasEvent()确定一个事件是否定义。CComponent
hasEventHandler()检查事件是否有附加的处理程序。CComponent
hasProperty()确定属性是否被定义。CComponent
init()通过设置一些默认属性值初始化pager。CLinkPager
raiseEvent()发起一个事件。CComponent
registerClientScript()加载所需的客户端脚本(主要是CSS文件)。CLinkPager
registerCssFile()加载所需的CSS文件。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()设置此pager所用的分页信息。CBasePager
widget()Creates a widget and executes it.CBaseController

受保护方法

隐藏继承方法

方法描述定义在
createPageButton()创建一个分页按钮。CLinkPager
createPageButtons()创建分页按钮。CLinkPager
createPageUrl()创建分页适用的URL。CBasePager
createPages()创建缺省分页。CBasePager
getPageRange()返回要显示的开始和结束页。CLinkPager

属性详细

cssFile 属性 public mixed $cssFile;

用于挂件的CSS样式文件。默认是 null, 意味着将使用包含在挂件里的CSS样式。 如果是false,就不会使用CSS样式。如果定义了该属性, 使用该挂件时指定的CSS会被包含进来。

firstPageLabel 属性 public string $firstPageLabel;

“第一页”按钮的文本。默认是’<< First‘。

footer 属性 public string $footer;

分页按钮后面显示的文本。

header 属性 public string $header;

分页按钮前面显示的文本。默认是’Go to page: ‘。

htmlOptions 属性 public array $htmlOptions;

分页标签的HTML属性。

lastPageLabel 属性 public string $lastPageLabel;

“最后一页”按钮的文本。默认是’Last >>‘。

maxButtonCount 属性 public integer $maxButtonCount;

要显示的最多分页按钮数。默认10。

nextPageLabel 属性 public string $nextPageLabel;

“下一页”按钮的文本。默认‘Next >’。

pageRange 属性 只读 protected array getPageRange()

要显示的开始和结束页。

prevPageLabel 属性 public string $prevPageLabel;

“上一页”按钮的文本。默认‘< Previous’。

方法详细

createPageButton() 方法
protected string createPageButton(string $label, integer $page, string $class, boolean $hidden, boolean $selected)
$labelstring按钮上的文本
$pageinteger页码
$classstring分页按钮的CSS样式。这可以是’page‘,’first‘,’last‘,’next‘或’previous‘。
$hiddenboolean是否显示分页按钮
$selectedboolean是否选中分页按钮
{return}string生成的按钮
源码: framework/web/widgets/pagers/CLinkPager.php#152 (显示) protectedfunctioncreatePageButton($label,$page,$class,$hidden,$selected)
{
if($hidden||$selected)
$class.=''.($hidden?self::CSS_HIDDEN_PAGE:self::CSS_SELECTED_PAGE);
return'<liclass="'.$class.'">'.CHtml::link($label,$this->createPageUrl($page)).'</li>';
}

创建一个分页按钮。 你可以重写这个方法来定制分页按钮。

createPageButtons() 方法
protected array createPageButtons()
{return}array分页按钮的列表(返回的是HTML代码)。
源码: framework/web/widgets/pagers/CLinkPager.php#110 (显示) protectedfunctioncreatePageButtons()
{
if(($pageCount=$this->getPageCount())<=1)
returnarray();

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

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

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

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

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

//lastpage
$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 (显示) protectedfunctiongetPageRange()
{
$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);
}
returnarray($beginPage,$endPage);
}
init() 方法
public void init()
源码: framework/web/widgets/pagers/CLinkPager.php#72 (显示) publicfunctioninit()
{
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','Gotopage:');

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 (显示) publicfunctionregisterClientScript()
{
if($this->cssFile!==false)
self::registerCssFile($this->cssFile);
}

加载所需的客户端脚本(主要是CSS文件)。

registerCssFile() 方法
public static void registerCssFile(string $url=NULL)
$urlstringCSS URL。如果为null,那么会使用默认的CSS URL。
源码: framework/web/widgets/pagers/CLinkPager.php#189 (显示) publicstaticfunctionregisterCssFile($url=null)
{
if($url===null)
$url=CHtml::asset(Yii::getPathOfAlias('system.web.widgets.pagers.pager').'.css');
Yii::app()->getClientScript()->registerCssFile($url);
}

加载所需的CSS文件。

run() 方法
public void run()
源码: framework/web/widgets/pagers/CLinkPager.php#95 (显示) publicfunctionrun()
{
$this->registerClientScript();
$buttons=$this->createPageButtons();
if(empty($buttons))
return;
echo$this->header;
echoCHtml::tag('ul',$this->htmlOptions,implode("n",$buttons));
echo$this->footer;
}

执行这个挂件。 当显示生成的分页按钮时这个方法会覆盖父类的实现。