Yii弹出窗口组件CJuiDialog

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指定前缀以区别于别的微件或控制器。当微件用于控制器的视图中时,必须配置同样的前缀。CWidget
controllerCController返回此微件所属的控制器。CWidget
cssFilemixed主题的CSS文件名。默认是‘jquery-ui.CJuiWidget
htmlOptionsarrayJUI组件中HTML标签的属性设置。CJuiWidget
idstring返回此微件的ID。如果需要的话,将生产一个新的ID并将其返回。CWidget
optionsarraythe 初始的JavaScript需要传递给JUI插件的选项。CJuiWidget
ownerCBaseController返回此微件的所有者或创建者。CWidget
scriptFilemixed主要JUI的JavaScript的文件名。默认是‘jquery-ui.CJuiWidget
scriptUrlstring包含所有JUI JavaScript文件的根目录。如果没有设置这个属性(默认),Yii will publish the JUI package included in the zii release and usethat to infer the root script URL.CJuiWidget
skinmixed微件使用的皮肤的名称。默认为“default”。如果此属性设置为false,微件将不会有皮肤被使用。CWidget
themestringJUI主题的名字。默认是‘base’。确保在themeUrl下有这样一个目录,其名称是这个属性的值相同(区分大小写)。CJuiWidget
themeUrlstring包含所有JUI的主题文件夹的根目录。如果没有设置这个属性(默认), Yii will publish the JUI package included in the zii release and usethat to infer the root theme URL.CJuiWidget
viewPathstring返回包含此微件所需的视图文件的路径。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;

后增加修改以下代码

                // 如果不是自动打开,则加上默认不显示style
		if (!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';
			}
		}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值