您的位置:首页 > 编程语言 > PHP开发

Yii弹出窗口组件CJuiDialog

2012-12-04 13:45 525 查看
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';
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: