1,CJuiDialog按钮
$('#choose-clientele').click(function(){
var client_url=baseUrl+'/index.php?r=basedata/clienteles';
$('#clientele_dialog').dialog("open");
$.ajax({url:client_url,async:false,success:function(data){
$('#clientele_dialog').html(data);
}});
});
2,请求的控制器
public function actionClienteles()
{
$model = new ClienteleSurvey('search');
$this->layout = 'ajax';
$this->render('clientele',array('model'=>$model));
}
3,视图,
<?php
Yii::app()->clientScript->scriptMap = array('jquery.js'=>false, 'jquery.min.js'=>false);
$columns = array("id","company");
$factory = new CWidgetFactory();
$widget = $factory->createWidget($this, 'zii.widgets.grid.CGridView', array(
'id'=>'clientele-survey-grid',
'dataProvider'=>$model->search(),
'columns'=>$columns,
'ajaxUpdate'=>true,
));
$widget->init();
$widget->run();
?>
4,去头去尾的layout, $this->layout = 'ajax';
对应文件: view/layout/ajax.php
<?php echo $content; ?>
注意的是:YII dialog中重复加载jquery.js会导致出现错误:Object [object Object] has no method 'dialog'
解决办法是:
Yii::app()->clientScript->scriptMap = array('jquery.js'=>false, 'jquery.min.js'=>false);