Heim  >  Artikel  >  php教程  >  Yii Framework 开发教程Zii组件-Tabs示例

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

WBOY
WBOYOriginal
2016-06-13 10:54:01842Durchsuche

前基本用法如下:

 

 

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

}

}

 

显示结果如下:

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn