In an application I had a CGridView with a CButtonColumn and for an Ajax-Request I needed to make sure that the IDs of the buttons would not change when the GridView was updated so in effect I wanted to link them to the $data->id.
So I tried:
The CGridView widget is very useful and customizable, but sometimes you need a little more.
One limit I found is to have only one row for headers; yes, you can write each column header in more than one row, but just inside the single cell.
I was looking instead for the possibility to use more than one row, with different structure one from the others.
This way you can write columns grouping headers, and obtain a nicer view.
Generally we need to show one or more fields from a model that is related to another model used in CGridView.
For our case we will use two related models, which explain how to use model "A" fields in a CGridView that used model "B".