Yii Framework 开发教程Zii组件-Tabs示例_PHP教程
程序员文章站
2022-05-03 12:12:44
...
前基本用法如下:
[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.');
}
}
显示结果如下:
推荐阅读
-
PHP开发框架Yii Framework教程(17) UI 组件 TabView示例
-
PHP开发框架Yii Framework教程(18) UI 组件 TextHighlighter示例
-
PHP开发框架Yii Framework教程(16) UI 组件 StarRating示例
-
PHP开发框架Yii Framework教程(19) UI 组件 TreeView示例
-
PHP开发框架Yii Framework教程(15) UI 组件 MultiFileUpload示例
-
PHP开发框架Yii Framework教程(37) Zii组件-Dialog示例
-
Yii Framework 开发教程Zii组件-Menu 示例_PHP教程
-
PHP开发框架Yii Framework教程(20) UI组件 Captcha示例
-
PHP开发框架Yii Framework教程(14) UI 组件 MaskedTextField示例
-
PHP开发框架Yii Framework教程(38) Zii组件-ProgressBar示例