Hola buen dia,
He estado trabajando con yii y yiibooster, me ha surgido un problema tengo un modal en el cual tengo unos selects y un gridview en el cual hago un submit mediante un ajaxbutton para insertarlo en la bd pero no me actualiza el gridview aunque ya he llamado a la funcion correspondiente, eso es por comenzar la otra cosa que me pasa es que si abro el model y lo cierro las funciones js se repiten el mismo numero de veces que he abierto la ventana, como dato ya he intentado en unbind y el undelegate y no he obtenido buenos resultados. Sin mas que explicar les dejo mis códigos.
Esto es lo que renderizo en el modal.
<?php
Yii::app()->clientScript->registerScript('actualizarGrid', "
$('#actuallizarDetalleSolicitud').click(function(){
$.fn.yiiGridView.update('lecture-grid');
return false;
});
");
?>
<!-- Popup Header -->
<div class="modal-header">
Agregar Fallas
</div>
<!-- Popup Content -->
<div class="modal-body">
<?php $form=$this->beginWidget('booster.widgets.TbActiveForm',array(
'id'=>'detalle-solicitud-form',
'enableAjaxValidation'=>false,
)); ?>
<div class="row">
<?php echo $form->errorSummary($model); ?>
<div class="col-md-3 form-group">
<?php echo CHtml::hiddenField('idsolicitudGarantia' , $idsolicitudGarantia , array('id' => 'idsolicitudGarantia')); ?>
<?php echo $form->labelEx($model,'idCategoriaFalla', array('class'=>'control-label')); ?>
<div>
<?php echo $form->dropDownList($model,"idCategoriaFalla",$this->obtenerOpcionesCategoriasFallas(),
array(
'ajax'=>array(
'type'=>'POST',
'url'=>CController::createUrl('DetalleSolicitud/SelectCategoria'),
'update'=>'#'.CHtml::activeId($model,'idTipoFalla'),
'beforeSend' => 'function(){
$("#DetalleSolicitud_idTipoFalla").find("option").remove();
$("#DetalleSolicitud_idfalla").find("option").remove();
}'
),
'prompt'=>'Seleccione',
'class'=>'form-control'
)
);?>
</div>
<?php echo $form->error($model,'idCategoriaFalla'); ?>
</div>
<div class="col-md-3 form-group">
<?php echo $form->labelEx($model,'idTipoFalla', array('class'=>'control-label')); ?>
<div>
<?php
$listaTipoFalla =array();
if (isset($model->idtipoFalla)) {
$idTipoFalla = intval($model->idtipoFalla);
$listaTipoFalla = CHtml::listData(TipoFalla::model()->findAll("idtipoFalla = '$idTipoFalla'"),'idtipoFalla','nombre');
}
echo $form->dropDownList($model,"idTipoFalla",$listaTipoFalla,
array(
'ajax'=>array(
'type'=>'POST',
'url'=>CController::createUrl('DetalleSolicitud/SelectTipo'),
'update'=>'#'.CHtml::activeId($model,'idfalla'),
'beforeSend' => 'function(){
$("#DetalleSolicitud_idfalla").find("option").remove();
}'
),
'prompt'=>'Seleccione Categoria',
'class'=>'form-control'
)
);?>
</div>
<?php echo $form->error($model,'idTipoFalla'); ?>
</div>
<div class="col-md-3 form-group">
<?php echo $form->labelEx($model,'idfalla', array('class'=>'control-label')); ?>
<div>
<?php
$listaTipo =array();
if (isset($model->idfalla)) {
$idfalla = intval($model->idfalla);
$listaTipo = CHtml::listData(Falla::model()->findAll("idfalla = '$idfalla'"),'idfalla','nombreFalla');
}
echo $form->dropDownList($model,"idfalla",array(),
array(
'prompt'=>'Seleccione Categoria',
'class'=>'form-control'
)
);
?>
</div>
<?php echo $form->error($model,'idfalla'); ?>
</div>
<?php $this->endWidget(); ?>
<div class="col-md-3">
<?php
$fecha = date_create();
$rand = date_format($fecha, 'U');
$this->widget('booster.widgets.TbButton',
array(
'label'=>'Agregar',
'icon'=>'glyphicon glyphicon-triangle-bottom',
'context'=>'success',
'size' => 'extra_small',
'buttonType'=>'ajaxButton',
'url'=>Yii::app()->createUrl("DetalleSolicitud/create"),
'ajaxOptions'=>array(
'type'=>'post',
'dataType'=>'json',
'data'=>'js:$("#detalle-solicitud-form").serialize()',
'success'=>"function(data){
alert('holasuccess');
}",
),
'htmlOptions'=>array('id'=>'agregarDetalleSolicitud'.$rand,'name'=>'agregarDetalleSolicitud'.$rand)
)); ?>
</div>
</div>
<div class="row tablasModal">
<div class="col-md-12">
<?php
$this->widget('booster.widgets.TbButton',
array(
'label'=>'Actualizar',
'icon'=>'glyphicon glyphicon-refresh',
'context'=>'info',
'size' => 'extra_small',
'buttonType'=>'button',
'htmlOptions'=>array(
'id'=>'actuallizarDetalleSolicitud',
'name'=>'actuallizarDetalleSolicitud',
'class'=>'pull-right'
)
));
?>
</div>
<div class="col-md-12">
<?php
$this->widget('booster.widgets.TbExtendedGridView', array(
'id'=>'lecture-grid',
'dataProvider'=>$model->myDataProvider($idsolicitudGarantia),
'summaryText'=>false,
'pagerCssClass'=>'pull-right',
'pager'=>array(
'class'=>'CLinkPager',
'pageSize' => 50,
'firstPageLabel'=>'Primera',
'lastPageLabel'=>'Ultima',
'nextPageLabel'=>'Siguiente',
'prevPageLabel'=>'Anterior',
'header'=>false,
),
'columns'=>array(
array(
'name' => 'idCategoriaFalla',
'value' => '$data->idCategoriaFalla0->nombre'
),
array(
'name' => 'idTipoFalla',
'value' => '$data->idTipoFalla0->nombre'
),
array(
'name' => 'idfalla',
'value' => '$data->idfalla0->nombreFalla'
),
)));
?>
</div>
</div>
</div>
<!-- Popup Footer -->
<div class="modal-footer">
<?php /*$this->widget('booster.widgets.TbButton', array(
'buttonType'=>'submit',
'context'=>'success',
'size' => 'extra_small',
'icon'=>"glyphicon glyphicon-plus",
'htmlOptions'=>array('id'=>'crearSolicitudGarantia','name'=>'crearSolicitudGarantia','onclick' => '$("#solicitud-garantia-form").submit()'),
'label'=>$model->isNewRecord ? 'Crear' : 'Guardar',
));*/ ?>
<?php $this->widget('booster.widgets.TbButton', array(
'context'=>'warning',
'size' => 'extra_small',
'icon'=>"glyphicon glyphicon-remove",
'label'=>'Cerrar',
'url'=>'#',
'htmlOptions'=>array('data-dismiss'=>'modal'),
)); ?>
<?php ?>
</div>
Acontinuacion mi controlador con la funcion create hace la llamada para renderizar el modal:
<?php
class DetalleSolicitudController extends Controller
{
/**
* @var string the default layout for the views. Defaults to '//layouts/column2', meaning
* using two-column layout. See 'protected/views/layouts/column2.php'.
*/
public $layout='//layouts/column2';
/**
* @return array action filters
*/
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view','selectCategoria','selectTipo',),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
/**
* Displays a particular model.
* @param integer $id the ID of the model to be displayed
*/
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
));
}
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate()
{
if(isset($_GET["idsolicitudGarantia"])){
$idsolicitudGarantia=$_GET['idsolicitudGarantia'];
}
if(isset($_POST["idsolicitudGarantia"])){
$idsolicitudGarantia = $_POST["idsolicitudGarantia"];
}
$model=new DetalleSolicitud;
$todosDetalleSolicitud = DetalleSolicitud::model()->findAll("idsolicitudGarantia=$idsolicitudGarantia");
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['DetalleSolicitud']))
{
$model->attributes=$_POST['DetalleSolicitud'];
$model->idsolicitudGarantia = $_POST['idsolicitudGarantia'];
if($model->save()){
//$this->redirect(array('view','id'=>$model->iddetalleSolicitud));
}
}
$this->renderPartial('//DetalleSolicitud/_form',array(
'model'=>$model,
'idsolicitudGarantia'=>$idsolicitudGarantia
),false,true);
}
/**
* Updates a particular model.
* If update is successful, the browser will be redirected to the 'view' page.
* @param integer $id the ID of the model to be updated
*/
public function actionUpdate($id){
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['DetalleSolicitud'])){
$model->attributes=$_POST['DetalleSolicitud'];
if($model->save())
$this->redirect(array('view','id'=>$model->iddetalleSolicitud));
}
$this->render('update',array(
'model'=>$model,
));
}
/**
* Deletes a particular model.
* If deletion is successful, the browser will be redirected to the 'admin' page.
* @param integer $id the ID of the model to be deleted
*/
public function actionDelete($id)
{
if(Yii::app()->request->isPostRequest)
{
// we only allow deletion via POST request
$this->loadModel($id)->delete();
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
else
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
}
/**
* Lists all models.
*/
public function actionIndex()
{
$dataProvider=new CActiveDataProvider('DetalleSolicitud');
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}
/**
* Manages all models.
*/
public function actionAdmin()
{
$model=new DetalleSolicitud('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['DetalleSolicitud']))
$model->attributes=$_GET['DetalleSolicitud'];
$this->render('admin',array(
'model'=>$model,
));
}
/**
* Returns the data model based on the primary key given in the GET variable.
* If the data model is not found, an HTTP exception will be raised.
* @param integer the ID of the model to be loaded
*/
public function loadModel($id)
{
$model=DetalleSolicitud::model()->findByPk($id);
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
return $model;
}
/**
* Performs the AJAX validation.
* @param CModel the model to be validated
*/
protected function performAjaxValidation($model)
{
if(isset($_POST['ajax']) && $_POST['ajax']==='detalle-solicitud-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
}
public function actionSelectCategoria(){
print_r($_POST);
$idCategoria = $_POST['DetalleSolicitud'] ['idCategoriaFalla'];
$lista=TipoFalla::model()->findAll('idCategoriaFalla = :idCategoria',array(':idCategoria'=>$idCategoria));
$lista = $listaTiposFallas = CHtml::listData($lista,'idtipoFalla','nombre');
echo CHtml::tag('option',array('value'=>''),'Seleccione',true);
foreach ($lista as $valor => $descripcion) {
echo CHtml::tag('option',array('value'=>$valor),CHtml::encode($descripcion),true);
}
}
public function actionSelectTipo(){
$idTipo = $_POST['DetalleSolicitud']['idTipoFalla'];
$lista=Falla::model()->findAll('idTipoFalla = :idTipo',array(':idTipo'=>$idTipo));
$lista = $listaTiposFallas = CHtml::listData($lista,'idfalla','nombreFalla');
echo CHtml::tag('option',array('value'=>''),'Seleccione',true);
foreach ($lista as $valor => $descripcion) {
echo CHtml::tag('option',array('value'=>$valor),CHtml::encode($descripcion),true);
}
}
protected function obtenerOpcionesFallas(){
$listaTiposFallas = CHtml::listData(Falla::model()->findAll(),'idfalla','nombreFalla');
return $listaTiposFallas;
}
protected function obtenerOpcionesTiposFallas(){
$listaTiposFallas = CHtml::listData(TipoFalla::model()->findAll(),'idtipoFalla','nombre');
return $listaTiposFallas;
}
protected function obtenerOpcionesCategoriasFallas(){
$listaCategoriasFallas = CHtml::listData(CategoriaFalla::model()->findAll(),'idcategoriaFalla','nombre');
return $listaCategoriasFallas;
}
}
Y por ultimo desde donde lo llamo con el boton "Agregar Falla" y el modal se encuentra en la parte inferior
<?php
$this->breadcrumbs=array(
'Solicitud Garantias'=>array('index'),
'Manage',
);
Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
$('.search-form').toggle();
return false;
});
// add the script to toggle the field list
$('.fields-button').click(function(){
$('.fields-form').toggle();
return false;
});
$('.search-form form').submit(function(){
$('#application-grid').yiiGridView('update', {
data: $(this).serialize()
});
return false;
});
");
?>
<h2>Lista de Solicitudes de Garantias</h2>
<?php $this->widget(
'booster.widgets.TbButton',
array(
'buttonType' => 'ajaxButton',
'label' => 'Mostrar mas campos',
'icon'=>'glyphicon sti-action-class',
'size' => 'extra_small',
'context' => 'primary',
'url'=>Yii::app()->createUrl("SolicitudGarantia/MostrarCampos"),
'ajaxOptions'=>array(
'type'=>'POST',
'url'=>"js:$(this).attr('href')",
'success'=>'js:function(data) {
$("#viewModal .modal-content").html(data);
$(".modal-dialog").removeClass("modal-lg");
$(".modal-dialog").addClass("modal-sm");
$("#viewModal").modal();
}'
),
));
?>
<?php
// here we create an array of columns for the grid view
$modelColumns=$model->getMetaData()->columns;
foreach ($modelColumns AS $columnName => $columnData) {
if (in_array($columnName,$columns)) {
$key=array_search($columnName,$columns);
switch ($columnName) {
case 'idcliente':
$columns[$key]=array('name'=>$columnName,'value'=>"\$data->idcliente0->idPersona0->nombre .\" \". \$data->idcliente0->idPersona0->apellidoPaterno .\" \". \$data->idcliente0->idPersona0->apellidoMaterno");
break;
case 'idvendedor':
$columns[$key]=array('name'=>$columnName,'value'=>"\$data->idvendedor0->idPersonaU->nombre .\" \". \$data->idvendedor0->idPersonaU->apellidoPaterno .\" \". \$data->idvendedor0->idPersonaU->apellidoMaterno");
break;
case 'idecoma':
$columns[$key]=array('name'=>$columnName,'value'=>"\$data->idecoma0->nombre");
break;
case 'idetapa':
$columns[$key]=array('name'=>$columnName,'value'=>"\$data->idetapa0->anio .\"-\". \$data->idetapa0->no_etapa");
break;
case 'idfraccionamiento':
$columns[$key]=array('name'=>$columnName,'value'=>"\$data->idfraccionamiento0->anio .\"-\". \$data->idfraccionamiento0->nombre");
break;
case 'medioReporte':
$columns[$key]=array('name'=>$columnName,'value'=>"SolicitudGarantia::getSwitchMetodoReporte(\$data->medioReporte)",'filter'=>array(''=>'Todos','1'=>SolicitudGarantia::getSwitchMetodoReporte(1),'2'=>SolicitudGarantia::getSwitchMetodoReporte(2),'3'=>SolicitudGarantia::getSwitchMetodoReporte(3)),);
break;
case 'estadoSolicitud':
$columns[$key]=array('name'=>$columnName,'value'=>"SolicitudGarantia::getSwitchEstadoSolicitud(\$data->estadoSolicitud)",'filter'=>array(''=>'Todos','1'=>SolicitudGarantia::getSwitchEstadoSolicitud(1),'2'=>SolicitudGarantia::getSwitchEstadoSolicitud(2),'3'=>SolicitudGarantia::getSwitchEstadoSolicitud(3),'4'=>SolicitudGarantia::getSwitchEstadoSolicitud(4),'5'=>SolicitudGarantia::getSwitchEstadoSolicitud(5),'6'=>SolicitudGarantia::getSwitchEstadoSolicitud(6),'7'=>SolicitudGarantia::getSwitchEstadoSolicitud(7)));
break;
case 'idSolicitante':
$columns[$key]=array('name'=>$columnName,'value'=>"\$data->idSolicitante0->idPersonaS->nombre .\" \". \$data->idSolicitante0->idPersonaS->apellidoPaterno .\" \". \$data->idSolicitante0->idPersonaS->apellidoMaterno");
break;
}
}
}
$_SESSION['SolicitudGarantia']['columnas'] = $columns;
// add the button column
// set the button column header to be a drop down to select page size
// don't forget to change 'casa-entregada-grid' to reflect your grid 'id'
$columns[]=array(
'class'=>'booster.widgets.TbButtonColumn',
'template'=>'{delete}{view}{update}{contactoSol}{trabajoTerm}{imprimir}{confirmar}{DetalleSolicitar}', // botones a mostrar
'updateButtonUrl'=>'Yii::app()->createUrl("/SolicitudGarantia/update?id=$data->idSolicitudGarantia" )', // url de la acción 'update'
'deleteButtonUrl'=>'Yii::app()->createUrl("/SolicitudGarantia/delete?id=$data->idSolicitudGarantia" )', // url de la acción 'delete'
'deleteConfirmation'=>'Seguro que quiere eliminar el elemento?', // mensaje de confirmación de borrado
'afterDelete'=>'$.fn.yiiGridView.update("solicitud-garantia-grid");', // actualiza el grid después de borrar
'buttons'=>array(
'DetalleSolicitar' => array( //botón para la acción nueva
'label'=>'Agregar Fallas', // titulo del enlace del botón nuevo
'icon'=>'glyphicon mdi-content-add',
'url'=>'Yii::app()->createUrl("DetalleSolicitud/create",array("idsolicitudGarantia"=>"$data->idSolicitudGarantia"))', //url de la acción nueva
'visible'=>'($data->estadoSolicitud==1)',
'options'=>array(
'ajax'=>array(
'type'=>'POST',
'url'=>"js:$(this).attr('href')",
'success'=>'function(data) {
$("#viewModal .modal-content").html(data);
$(".modal-dialog").removeClass("modal-sm");
$(".modal-dialog").addClass("modal-lg");
$("#viewModal").modal();
}'
),
),
),
'delete' => array( //botón para la acción nueva
'label'=>'Eliminar', // titulo del enlace del botón nuevo
'icon'=>'glyphicon mdi-action-delete',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/delete",array("id"=>$data->idSolicitudGarantia))', //url de la acción nueva
),
/*'view' => array( //botón para la acción nueva
'label'=>'Detalles', // titulo del enlace del botón nuevo
'icon'=>'glyphicon mdi-action-visibility',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/view?id=$data->idSolicitudGarantia" )', //url de la acción nueva
),*/
'view' => array( //botón para la acción nueva
'label'=>'Detalles', // titulo del enlace del botón nuevo
'icon'=>'glyphicon mdi-action-visibility',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/view",array("id"=>$data->idSolicitudGarantia))', //url de la acción nueva
'options'=>array(
'ajax'=>array(
'type'=>'POST',
'url'=>"js:$(this).attr('href')",
'success'=>'function(data) { $("#viewModal .modal-body p").html(data); $("#viewModal").modal(); }'
),
),
),
'update' => array( //botón para la acción nueva
'label'=>'Actualizar', // titulo del enlace del botón nuevo
'icon'=>'glyphicon mdi-content-create',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/update",array("id"=>$data->idSolicitudGarantia))', //url de la acción nueva
/*'htmlOptions' => array(
'class' => 'fa fa-desktop',
),*/
),
'contactoSol' => array( //botón para la acción nueva
'label'=>'Solicitante Contactado', // titulo del enlace del botón nuevo
'icon'=>'glyphicon glyphicon-user',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/updateEstado",array("id"=>$data->idSolicitudGarantia,"estado"=>2))', //url de la acción nueva
'visible'=>'($data->estadoSolicitud==1)',
),
'trabajoTerm' => array( //botón para la acción nueva
'label'=>'Trabajo Finalizado', // titulo del enlace del botón nuevo
'icon'=>'glyphicon glyphicon-home',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/updateEstado",array("id"=>$data->idSolicitudGarantia,"estado"=>3))', //url de la acción nueva
'visible'=>'($data->estadoSolicitud==2)',
),
'imprimir' => array( //botón para la acción nueva
'label'=>'Imprimir Formato', // titulo del enlace del botón nuevo
'icon'=>'glyphicon glyphicon-print',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/updateEstado",array("id"=>$data->idSolicitudGarantia,"estado"=>4))', //url de la acción nueva
'visible'=>'($data->estadoSolicitud==3)',
),
'confirmar' => array( //botón para la acción nueva
'label'=>'Confirmar Firma', // titulo del enlace del botón nuevo
'icon'=>'glyphicon glyphicon-ok',
'url'=>'Yii::app()->createUrl("/SolicitudGarantia/updateEstado",array("id"=>$data->idSolicitudGarantia,"estado"=>5))', //url de la acción nueva
'visible'=>'($data->estadoSolicitud==4)',
),
),
'header'=>CHtml::dropDownList('pageSize',$pageSize,array(10=>10,20=>20,50=>50,100=>100),array('onchange'=>"$.fn.yiiGridView.update('solicitud-garantia-grid',{ data:{pageSize: $(this).val() }})")),
);
/*array(
'class'=>'CButtonColumn',
'template'=>'{view}{update}{delete}',
'header'=>CHtml::dropDownList('pageSize',$pageSize,array(10=>10,20=>20,50=>50,100=>100),array('onchange'=>"$.fn.yiiGridView.update('casa-entregada-grid',{ data:{pageSize: $(this).val() }})")),
);*/
$this->widget(
'booster.widgets.TbButtonGroup',
array(
'id' => 'exportar',
'size' => 'extra_small',
'context' => 'primary',
'buttons' => array(
array(
'label' => 'Exportar',
'htmlOptions'=>array(
'id' => 'btnExportarSolicitudGarantia',
'class' => 'exportarTabla'
),
'items' => array(
array(
'label' => 'Documento XLSX',
'url' => Yii::app()->createUrl("/SolicitudGarantia/exportarExcel" ),
'icon' => 'fa fa-file-excel-o',
),
array(
'label' => 'Documento PDF',
'url' => Yii::app()->createUrl("/SolicitudGarantia/exportarPDF" ),
'icon' => 'fa fa-file-pdf-o',
),
)
),
),
)
);
// display the gridview
$this->widget('booster.widgets.TbExtendedGridView', array(
'id'=>'solicitud-garantia-grid',
'type'=>'condensed',
'dataProvider'=>$model->search(),
'summaryCssClass'=>'pull-right',
'beforeAjaxUpdate' => 'function(id) { $(\'#loadingbar\').show(); }',
'afterAjaxUpdate' => 'function(id) { $(\'#loadingbar\').hide(); }',
'filter'=>$model,
'pager'=>array(
'class'=>'CLinkPager',
'pageSize' => 50,
'firstPageLabel'=>'Primera',
'lastPageLabel'=>'Ultima',
'nextPageLabel'=>'Siguiente',
'prevPageLabel'=>'Anterior',
'header'=>'Ir',
),
'summaryText' => 'Visualizando {start}-{end} de {count} resultados. ',
'columns'=>$columns,
)); ?>
<!-- View Popup -->
<?php $this->beginWidget('booster.widgets.TbModal', array('id'=>'viewModal','modalDialogOptions'=>array('class'=>'modal-lg'))); ?>
<?php $this->endWidget(); ?>
<!-- View Popup ends -->
De antemano muchas gracias por la ayuda.