Yii Framework v1.1.10 绫诲弬鑰

CBaseListView

zii.widgets
缁ф壙 abstract class CBaseListView » CWidget » CBaseController » CComponent
瀛愮被 CGridView, CListView
婧愯嚜 1.1
鐗堟湰 $Id: CBaseListView.php 3101 2011-03-22 17:35:19Z qiang.xue $
婧愮爜 framework/zii/widgets/CBaseListView.php
CBaseListView鏄CListViewCGridView鐨勫熀绫汇

CBaseListView瀹炵幇浜嗕竴涓儴浠舵覆鏌撳涓ā鍨嬬殑鍔熻兘銆

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
actionPrefix string actions鐨処D鐨勫墠缂銆 褰撳井浠跺湪CController::actions涓0鏄庝簡 鍔ㄤ綔鎻愪緵鑰咃紝鍙互涓哄叾鍔ㄤ綔鐨処D鎸囧畾鍓嶇紑浠ュ尯鍒 浜庡埆鐨勫井浠舵垨鎺у埗鍣ㄣ傚綋寰欢鐢ㄤ簬鎺у埗鍣 鐨勮鍥句腑鏃讹紝蹇呴』閰嶇疆鍚屾牱鐨勫墠缂銆 CWidget
controller CController 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ CWidget
dataProvider IDataProvider 瑙嗗浘闇瑕佹樉绀虹殑鏁版嵁婧愩 CBaseListView
emptyText string dataProvider涓虹┖鏃舵樉绀虹殑鍐呭銆 CBaseListView
enablePagination boolean 鏄惁鍚敤鍒嗛〉銆傛敞鎰忥細褰IDataProvider::pagination鐨勫睘鎬 dataProvider涓篺alse鏃跺垯姝ゅ睘鎬т负false锛屽嵆涓嶅惎鐢ㄥ垎椤点 褰撳惎鐢ㄥ垎椤垫椂锛岄〉鐮佷細鍦ㄨ鍥句腑鏄剧ず銆 榛樿涓簍rue銆 CBaseListView
enableSorting boolean 鏄惁鍚敤鎺掑簭銆傛敞鎰忥細褰IDataProvider::sort鐨勫睘鎬 dataProvider涓篺alse鏃跺垯姝ゅ睘鎬т负false锛屽嵆涓嶅惎鐢ㄦ帓搴忋 褰撳惎鐢ㄦ帓搴忔椂锛岀偣鍑诲垪鍚嶅氨鍙寜璇ュ垪鎺掑簭銆 榛樿涓簍rue銆 CBaseListView
htmlOptions array 閮ㄤ欢鐨凥TML灞炴с CBaseListView
id string 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
itemsCssClass string 鏄剧ず鍚勬潯鏁版嵁鐨勫鍣ㄧ殑CSS绫汇傞粯璁や负鈥榠tems鈥欍 CBaseListView
loadingCssClass string 浣跨敤AJAX鍔犺浇鏁版嵁鏃惰繘搴︽潯瀹瑰櫒鐨凜SS绫 榛樿涓衡榣oading鈥欍 CBaseListView
owner CBaseController 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
pager array pager 鐨勯厤缃俊鎭傞粯璁や负array('class'=>'CLinkPager'). CBaseListView
pagerCssClass string 鏄剧ず椤电爜鐨勫鍣ㄧ殑CSS绫汇傞粯璁や负鈥榩ager鈥欍 CBaseListView
skin mixed 寰欢浣跨敤鐨勭毊鑲ょ殑鍚嶇О銆傞粯璁や负鈥渄efault鈥濄 濡傛灉姝ゅ睘鎬ц缃负false锛屽井浠跺皢涓嶄細鏈夌毊鑲よ浣跨敤銆 CWidget
summaryCssClass string 鏄剧ず鎽樿鐨勫鍣ㄧ殑CSS绫汇傞粯璁や负鈥榮ummary鈥欍 CBaseListView
summaryText string 鎽樿鍐呭浣跨敤鐨勬ā鏉裤 涓嬮潰鐨勮繖浜涙爣璁板皢浼氳瀵瑰簲鐨勫唴瀹规浛鎹細
  • {start}: 褰撳墠鏄剧ず鐨勮捣濮嬭鏁 (浠1寮濮)
  • {end}: 褰撳墠鏄剧ず鐨勭粨鏉熻鏁 (浠1寮濮)
  • {count}: 鎬昏鏁
  • {page}: 褰撳墠鏄剧ず鐨勯〉鐮侊紝鑷 1.
CBaseListView
tagName string 瑙嗗浘瀹瑰櫒鐨勬爣绛俱傞粯璁や负鈥榙iv鈥欍 CBaseListView
template string 瑙嗗浘甯冨眬鐨勬ā鏉裤 鍙敤鐨勬爣璁版湁锛歿summary}锛寋items}鍜寋pager}銆 瀹冧滑灏嗚鐩稿簲鐨勬憳瑕侊紝鏁版嵁鍒楄〃鍜屽垎椤垫浛鎹€ CBaseListView
viewPath string 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__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
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getId() 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 CWidget
getOwner() 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 CWidget
getViewFile() 鏍规嵁瑙嗗浘鍚嶆煡鎵捐鍥炬枃浠躲 CWidget
getViewPath() 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 CWidget
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
init() 鍒濆鍖栭儴浠躲 CBaseListView
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
registerClientScript() 娉ㄥ唽蹇呴渶鐨勫鎴风鑴氭湰銆 CBaseListView
render() 娓叉煋涓涓鍥俱 CWidget
renderContent() 娓叉煋瑙嗗浘鐨勪富瑕佸唴瀹广 CBaseListView
renderEmptyText() 娓叉煋鏁版嵁涓虹┖鏃舵樉绀虹殑鍐呭銆 CBaseListView
renderFile() Renders a view file. CBaseController
renderInternal() Renders a view file. CBaseController
renderItems() 娓叉煋瑙嗗浘鐨勫垪琛ㄥ唴瀹广 CBaseListView
renderKeys() 娓叉煋涓涓殣钘忔爣绛炬暟鎹敭鍊笺 CBaseListView
renderPager() 娓叉煋鍒嗛〉銆 CBaseListView
renderSummary() 娓叉煋鎽樿鍐呭銆 CBaseListView
run() 娓叉煋瑙嗗浘銆 CBaseListView
setId() 璁剧疆姝ゅ井浠剁殑ID銆 CWidget
widget() Creates a widget and executes it. CBaseController

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
renderSection() 娓叉煋鎸囧畾閮ㄥ垎鐨勫唴瀹广 CBaseListView

灞炴ц缁

dataProvider 灞炴
public IDataProvider $dataProvider;

瑙嗗浘闇瑕佹樉绀虹殑鏁版嵁婧愩

emptyText 灞炴
public string $emptyText;

dataProvider涓虹┖鏃舵樉绀虹殑鍐呭銆

enablePagination 灞炴
public boolean $enablePagination;

鏄惁鍚敤鍒嗛〉銆傛敞鎰忥細褰IDataProvider::pagination鐨勫睘鎬 dataProvider涓篺alse鏃跺垯姝ゅ睘鎬т负false锛屽嵆涓嶅惎鐢ㄥ垎椤点 褰撳惎鐢ㄥ垎椤垫椂锛岄〉鐮佷細鍦ㄨ鍥句腑鏄剧ず銆 榛樿涓簍rue銆

enableSorting 灞炴
public boolean $enableSorting;

鏄惁鍚敤鎺掑簭銆傛敞鎰忥細褰IDataProvider::sort鐨勫睘鎬 dataProvider涓篺alse鏃跺垯姝ゅ睘鎬т负false锛屽嵆涓嶅惎鐢ㄦ帓搴忋 褰撳惎鐢ㄦ帓搴忔椂锛岀偣鍑诲垪鍚嶅氨鍙寜璇ュ垪鎺掑簭銆 榛樿涓簍rue銆

鍙傝

  • sortableAttributes
htmlOptions 灞炴
public array $htmlOptions;

閮ㄤ欢鐨凥TML灞炴с

itemsCssClass 灞炴
public string $itemsCssClass;

鏄剧ず鍚勬潯鏁版嵁鐨勫鍣ㄧ殑CSS绫汇傞粯璁や负鈥榠tems鈥欍

loadingCssClass 灞炴 锛堝彲鐢ㄨ嚜 v1.1.1锛
public string $loadingCssClass;

浣跨敤AJAX鍔犺浇鏁版嵁鏃惰繘搴︽潯瀹瑰櫒鐨凜SS绫 榛樿涓衡榣oading鈥欍

pager 灞炴
public array $pager;

pager 鐨勯厤缃俊鎭傞粯璁や负array('class'=>'CLinkPager').

鍙傝

pagerCssClass 灞炴
public string $pagerCssClass;

鏄剧ず椤电爜鐨勫鍣ㄧ殑CSS绫汇傞粯璁や负鈥榩ager鈥欍

summaryCssClass 灞炴
public string $summaryCssClass;

鏄剧ず鎽樿鐨勫鍣ㄧ殑CSS绫汇傞粯璁や负鈥榮ummary鈥欍

summaryText 灞炴
public string $summaryText;

鎽樿鍐呭浣跨敤鐨勬ā鏉裤 涓嬮潰鐨勮繖浜涙爣璁板皢浼氳瀵瑰簲鐨勫唴瀹规浛鎹細

tagName 灞炴
public string $tagName;

瑙嗗浘瀹瑰櫒鐨勬爣绛俱傞粯璁や负鈥榙iv鈥欍

template 灞炴
public string $template;

瑙嗗浘甯冨眬鐨勬ā鏉裤 鍙敤鐨勬爣璁版湁锛歿summary}锛寋items}鍜寋pager}銆 瀹冧滑灏嗚鐩稿簲鐨勬憳瑕侊紝鏁版嵁鍒楄〃鍜屽垎椤垫浛鎹€

鏂规硶璇︾粏

init() 鏂规硶
public void init()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#100 (鏄剧ず)
public function init()
{
    if(
$this->dataProvider===null)
        throw new 
CException(Yii::t('zii','The "dataProvider" property cannot be empty.'));

    
$this->dataProvider->getData();

    
$this->htmlOptions['id']=$this->getId();

    if(
$this->enableSorting && $this->dataProvider->getSort()===false)
        
$this->enableSorting=false;
    if(
$this->enablePagination && $this->dataProvider->getPagination()===false)
        
$this->enablePagination=false;
}

鍒濆鍖栭儴浠躲 姝ゆ柟娉曞皢鍒濆鍖栨墍闇鐨勫睘鎬у煎拰瀹炰緥鍖栫殑columns瀵硅薄銆

registerClientScript() 鏂规硶
public void registerClientScript()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#274 (鏄剧ず)
public function registerClientScript()
{
}

娉ㄥ唽蹇呴渶鐨勫鎴风鑴氭湰銆 姝ゆ柟娉曞湪run涓璋冪敤銆 瀛愮被鍙互閲嶅啓姝ゆ柟娉曟潵娉ㄥ唽鑷畾涔夌殑瀹㈡埛绔剼鏈

renderContent() 鏂规硶
public void renderContent()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#138 (鏄剧ず)
public function renderContent()
{
    
ob_start();
    echo 
preg_replace_callback("/{(\w+)}/",array($this,'renderSection'),$this->template);
    
ob_end_flush();
}

娓叉煋瑙嗗浘鐨勪富瑕佸唴瀹广 涓昏鍐呭鍒嗛儴鍒嗘覆鏌擄紝濡傛憳瑕併佸垪琛ㄣ佸垎椤点 姣忎釜閮ㄥ垎浣跨敤鍛藉悕鏍煎紡涓"renderXyz"鐨勬柟娉曟覆鏌擄紝鍏朵腑"Xyz"涓烘閮ㄥ垎鐨勫悕绉般 娓叉煋鍚庣殑缁撴灉灏嗘浛鎹㈠湪template涓悇閮ㄥ垎鐨勭浉搴旀爣璁般

renderEmptyText() 鏂规硶
public void renderEmptyText()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#170 (鏄剧ず)
public function renderEmptyText()
{
    
$emptyText=$this->emptyText===null Yii::t('zii','No results found.') : $this->emptyText;
    echo 
CHtml::tag('span', array('class'=>'empty'), $emptyText);
}

娓叉煋鏁版嵁涓虹┖鏃舵樉绀虹殑鍐呭銆

renderItems() 鏂规硶
abstract public void renderItems()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#283 (鏄剧ず)
abstract public function renderItems();

娓叉煋瑙嗗浘鐨勫垪琛ㄥ唴瀹广 姣忔潯鏁版嵁瀵瑰簲涓涓暟鎹ā鍨嬨 瀛愮被搴旈噸鍐欐鏂规硶鑷畾涔夋樉绀哄唴瀹广

renderKeys() 鏂规硶
public void renderKeys()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#179 (鏄剧ず)
public function renderKeys()
{
    echo 
CHtml::openTag('div',array(
        
'class'=>'keys',
        
'style'=>'display:none',
        
'title'=>Yii::app()->getRequest()->getUrl(),
    ));
    foreach(
$this->dataProvider->getKeys() as $key)
        echo 
"<span>".CHtml::encode($key)."</span>";
    echo 
"</div>\n";
}

娓叉煋涓涓殣钘忔爣绛炬暟鎹敭鍊笺

renderPager() 鏂规硶
public void renderPager()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#239 (鏄剧ず)
public function renderPager()
{
    if(!
$this->enablePagination)
        return;

    
$pager=array();
    
$class='CLinkPager';
    if(
is_string($this->pager))
        
$class=$this->pager;
    else if(
is_array($this->pager))
    {
        
$pager=$this->pager;
        if(isset(
$pager['class']))
        {
            
$class=$pager['class'];
            unset(
$pager['class']);
        }
    }
    
$pager['pages']=$this->dataProvider->getPagination();

    if(
$pager['pages']->getPageCount()>1)
    {
        echo 
'<div class="'.$this->pagerCssClass.'">';
        
$this->widget($class,$pager);
        echo 
'</div>';
    }
    else
        
$this->widget($class,$pager);
}

娓叉煋鍒嗛〉銆

renderSection() 鏂规硶
protected string renderSection(array $matches)
$matches array 鍖归厤椤癸紝$matches[0]浠h〃鏁翠釜鍗犱綅绗︼紝 $matches[1]鍖呭惈鍖归厤鐨勫崰浣嶇鐨勫悕绉般
{return} string 璇ラ儴鍒嗙殑娓叉煋缁撴灉
婧愮爜锛 framework/zii/widgets/CBaseListView.php#153 (鏄剧ず)
protected function renderSection($matches)
{
    
$method='render'.$matches[1];
    if(
method_exists($this,$method))
    {
        
$this->$method();
        
$html=ob_get_contents();
        
ob_clean();
        return 
$html;
    }
    else
        return 
$matches[0];
}

娓叉煋鎸囧畾閮ㄥ垎鐨勫唴瀹广 姝ゆ柟娉曞湪renderContent鎵ц鏃舵覆鏌template涓殑姣忎竴涓爣璁般 娓叉煋鍚庣殑鍐呭灏嗘浛鎹㈡爣璁般

renderSummary() 鏂规硶
public void renderSummary()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#194 (鏄剧ず)
public function renderSummary()
{
    if((
$count=$this->dataProvider->getItemCount())<=0)
        return;

    echo 
'<div class="'.$this->summaryCssClass.'">';
    if(
$this->enablePagination)
    {
        if((
$summaryText=$this->summaryText)===null)
            
$summaryText=Yii::t('zii','Displaying {start}-{end} of {count} result(s).');
        
$pagination=$this->dataProvider->getPagination();
        
$total=$this->dataProvider->getTotalItemCount();
        
$start=$pagination->currentPage*$pagination->pageSize+1;
        
$end=$start+$count-1;
        if(
$end>$total)
        {
            
$end=$total;
            
$start=$end-$count+1;
        }
        echo 
strtr($summaryText,array(
            
'{start}'=>$start,
            
'{end}'=>$end,
            
'{count}'=>$total,
            
'{page}'=>$pagination->currentPage+1,
            
'{pages}'=>$pagination->pageCount,
        ));
    }
    else
    {
        if((
$summaryText=$this->summaryText)===null)
            
$summaryText=Yii::t('zii','Total {count} result(s).');
        echo 
strtr($summaryText,array(
            
'{count}'=>$count,
            
'{start}'=>1,
            
'{end}'=>$count,
            
'{page}'=>1,
            
'{pages}'=>1,
        ));
    }
    echo 
'</div>';
}

娓叉煋鎽樿鍐呭銆

run() 鏂规硶
public void run()
婧愮爜锛 framework/zii/widgets/CBaseListView.php#120 (鏄剧ず)
public function run()
{
    
$this->registerClientScript();

    echo 
CHtml::openTag($this->tagName,$this->htmlOptions)."\n";

    
$this->renderContent();
    
$this->renderKeys();

    echo 
CHtml::closeTag($this->tagName);
}

娓叉煋瑙嗗浘銆 姝ゆ柟娉曚负鏁翠釜娓叉煋鐨勫叆鍙c 瀛愮被涓鑸彧闇閲嶅啓renderContent鏂规硶銆

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