Yii弹出窗口组件CJuiDialog

来源:互联网 发布:软件设计师认证机构 编辑:程序博客网 时间:2024/05/17 18:23

CJuiDialog组件在手册zii.widgets.jui下

在视图下使用以下代码

$this->beginWidget('zii.widgets.jui.CJuiDialog', array(    'id'=>'mydialog',//弹窗ID    // additional javascript options for the dialog plugin    'options'=>array(//传递给JUI插件的参数        'title'=>'弹窗标题',        'autoOpen'=>false,//是否自动打开        'width'=>'auto',//宽度        'height'=>'auto',//高度        'buttons'=>array(            '关闭'=>'js:function(){ $(this).dialog("close");}',//关闭按钮        ),    ),));    echo 'dialog content here';$this->endWidget('zii.widgets.jui.CJuiDialog');// 这是弹窗链接,echo CHtml::link('open dialog', '#', array(   'onclick'=>'$("#mydialog").dialog("open"); return false;',//点击打开弹窗));

属性类型描述定义在actionPrefixstringactions的ID的前缀。当微件在CController::actions中声明了动作提供者,可以为其动作的ID指定前缀以区别于别的微件或控制器。当微件用于控制器的视图中时,必须配置同样的前缀。CWidgetcontrollerCController返回此微件所属的控制器。CWidgetcssFilemixed主题的CSS文件名。默认是‘jquery-ui.CJuiWidgethtmlOptionsarrayJUI组件中HTML标签的属性设置。CJuiWidgetidstring返回此微件的ID。如果需要的话,将生产一个新的ID并将其返回。CWidgetoptionsarraythe 初始的JavaScript需要传递给JUI插件的选项。CJuiWidgetownerCBaseController返回此微件的所有者或创建者。CWidgetscriptFilemixed主要JUI的JavaScript的文件名。默认是‘jquery-ui.CJuiWidgetscriptUrlstring包含所有JUI JavaScript文件的根目录。如果没有设置这个属性(默认),Yii will publish the JUI package included in the zii release and usethat to infer the root script URL.CJuiWidgetskinmixed微件使用的皮肤的名称。默认为“default”。如果此属性设置为false,微件将不会有皮肤被使用。CWidgetthemestringJUI主题的名字。默认是‘base’。确保在themeUrl下有这样一个目录,其名称是这个属性的值相同(区分大小写)。CJuiWidgetthemeUrlstring包含所有JUI的主题文件夹的根目录。如果没有设置这个属性(默认), Yii will publish the JUI package included in the zii release and usethat to infer the root theme URL.CJuiWidgetviewPathstring返回包含此微件所需的视图文件的路径。CWidget


Yii中的对话框(CJuiDialog)如果不是自动打开的,会先显示后隐藏,不是很流畅,如何解决?

解决方法是修改lib\zii\widgets\jui\CJuiDialog.php,如果对话框不是自动打开的,默认加上display: none这个style:

在代码

public function init(){parent::init(); $id=$this->getId();if (isset($this->htmlOptions['id']))$id = $this->htmlOptions['id'];else$this->htmlOptions['id']=$id;

后增加修改以下代码

                // 如果不是自动打开,则加上默认不显示styleif (!empty($this->options) && isset($this->options['autoOpen']) && ($this->options['autoOpen'] == false)) {if (isset($this->htmlOptions['style'])) {$this->htmlOptions['style'] .= '; display: none';} else {$this->htmlOptions['style'] = 'display: none';}}


原创粉丝点击