欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

Yii Framework 开发教程Zii组件-Tabs示例

程序员文章站 2022-05-03 12:13:08
...
前基本用法如下:

[php]

widget('zii.widgets.jui.CJuiTabs', array(

'tabs'=>array(

'Static tab'=>'Static content',

'Render tab'=>$this->renderPartial('pages/_content1',null,true),

'Ajax tab'=>array('ajax'=>array('ajaxContent','view'=>'_content2')),

),

'options'=>array(

'collapsible'=>true,

'selected'=>1,

),

'htmlOptions'=>array(

'style'=>'width:500px;'

),

)); ?>

widget('zii.widgets.jui.CJuiTabs', array(

'tabs'=>array(

'Static tab'=>'Static content',

'Render tab'=>$this->renderPartial('pages/_content1',null,true),

'Ajax tab'=>array('ajax'=>array('ajaxContent','view'=>'_content2')),

),

'options'=>array(

'collapsible'=>true,

'selected'=>1,

),

'htmlOptions'=>array(

'style'=>'width:500px;'

),

)); ?>

显示了三个页面不同内容显示方法,Static Tab显示一个静态内容,Render Tab使用Partial渲染一个页面,而Ajax Tab则通过AJAX显示一个页面,注意后面两个需要在SiteController中定义Actions 如下:

[php]

public function actions()

{

return array(

'page'=>array(

'class'=>'CViewAction',

),

// ajaxContent action renders

//"static" pages stored under 'protected/views/site/pages'

// They can be accessed via:

//index.php?r=site/ajaxContent&view=FileName

'ajaxContent'=>array(

'class'=>'application.controllers.AjaxViewAction',

),

);

}

public function actions()

{

return array(

'page'=>array(

'class'=>'CViewAction',

),

// ajaxContent action renders

//"static" pages stored under 'protected/views/site/pages'

// They can be accessed via:

//index.php?r=site/ajaxContent&view=FileName

'ajaxContent'=>array(

'class'=>'application.controllers.AjaxViewAction',

),

);

}

其中AjaxViewAction为一自定义ViewAction,为CViewAction的子类,可以显示静态页面,其定义如下:

[php]

class AjaxViewAction extends CViewAction

{

private $_viewPath;

public function run()

{

if(Yii::app()->request->isAjaxRequest)

{

$this->resolveView($this->getRequestedView());

$controller=$this->getController();

$controller->renderPartial($this->view, null, false, true);

}

else

throw new CHttpException(400,'Invalid request.

Please do not repeat this request again.');

}

}

class AjaxViewAction extends CViewAction

{

private $_viewPath;

public function run()

{

if(Yii::app()->request->isAjaxRequest)

{

$this->resolveView($this->getRequestedView());

$controller=$this->getController();

$controller->renderPartial($this->view, null, false, true);

}

else

throw new CHttpException(400,'Invalid request.

Please do not repeat this request again.');

}

}

显示结果如下: