Maison  >  Article  >  php教程  >  Yii Framework 开发教程Zii组件-Tabs示例

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

WBOY
WBOYoriginal
2016-06-13 10:54:01840parcourir

前基本用法如下:

 

 

[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.');

}

}

 

显示结果如下:

 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn