В стандартном CGridView при нажатии кнопки просмотреть запись(view) мне нужно чтобы просмотр каждой записи открывался аяксом в модальном окне ......подскажите где и что мне надо дописать ,чтобы получить такой функционал. Вот мой код:
Вьюха:
Код: Выделить всё
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'books-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
'id',
'name',
'preview' => array(
'name' => 'preview',
'type' => 'raw',
'value' => ' CHtml::link(CHtml::image(Yii::app()->request->baseUrl."/images/preview/".$data->preview))',
),
'autor_id' => array('name' => 'autor_id', 'value' => '$data->autor->firstname." ".$data->autor->lastname'),
'date' => array(
'name' => 'date',
'value' => 'Yii::app()->dateFormatter->format("d MMMM yyyy", $data->date)',
),
'date_create',
array(
'class' => 'CButtonColumn',
'header' => 'Кнопки действий',
'template' => '{delete}{update}{view-book}',
'buttons' => array(
'delete' => array(
'label' => '[удл]',
'options' => array(
'title' => 'Удалить запись',
'style' => 'padding-right:10px;border'
),
'imageUrl' => false,
),
'update' => array(
'label' => '[ред]',
'options' => array(
'title' => 'Редактировать запись',
'style' => 'padding-right:10px'
),
'imageUrl' => false,
),
'view-book' => array(
'label' => '[просм]',
'url' => 'Yii::app()->createUrl("books/view", array("id"=>$data->id,"ajax"=>"true"))',
'onclick' => 'function(){$("#view-book").dialog("open"); return false;}',
'options' => array(
'title' => 'Просмотреть запись',
'ajax' => array(
'type' => 'POST',
'url' => "js:$(this).attr('href')",
'success' => 'function(data) { $("#view-book .modal-body p").html(data); $("#view-book").modal(); }'
),
'imageUrl' => false,
),
),
),
),
)));
Код: Выделить всё
public function actionView($id) {
if (Yii::app()->request->isAjaxRequest) {
$this->renderPartial('view', array(
'model' => $this->loadModel($id),
), false, true);
} else {
$this->render('view', array(
'model' => $this->loadModel($id),
));
}
}