how to show a grid as a grid in GRIDVIEW WITH ROW EXPAND AND COLLAPSE the grid should show normal data when viewing a row that should show the details of the corresponding row. Help handle this ... my conclusion should be similar to

And when I click on the row, it should open and give detailed information (the image will show the table, but I do not need to display a detailed view in it.

EDITED I forgot to add something that the grid will load from one model, and row data will be loaded from another model.
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'books-grid',
'dataProvider'=>$model->Projectwisereport(),
'columns'=>array(
array(
'name' => 'Project',
'value' => 'Project::model()->findByPk($data->Project)->proj_name',
'filter'=>CHtml::listData(Project::model()->findall(),'proj_id','proj_name'),
),
'isbn_no',
'source_type',
array(
'name' => 'complexity',
'value' => 'Complexity::model()->findByPk($data->complexity)->Complexity_Name',
'filter'=>CHtml::listData(Complexity::model()->findall(),'id','Complexity_Name'),
'footer'=>'Total Page',
),
array('class'=>'CButtonColumn',
'template'=>'{detail}',
'buttons'=>array(
'detail'=>array(
'label'=>'Show Details',
'url' =>'Yii::app()->createUrl("Process/View", array("id"=>$data->book_id))',
'options'=>array('title'=>'Show details','class'=>'detailsLink'),
'click'=>"$('#your-grid-book_id').on('click','.detailsLink',function(){
var row=$(this).closest('tr');
var url=$(this).attr('href');
$.get(url,{},function(data){
row.after(data.row);
},'json');
})",
)
)
)
),
)); ?>
i trided this, but the grid from the book model and the reference to the process model in the CButton column are not used