> php教程 > php手册 > 본문

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

WBOY
풀어 주다: 2016-06-13 10:54:01
원래의
860명이 탐색했습니다.

前基本用法如下:

 

 

[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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!