CGridView: render two rows per "item"

I’m sure people are getting tired of my GridView questions… haha

Here’s what I want to try next. I want to make GridView render a second row for each item in the DataProvider.

I’m poking around inside the CGridView class and I’m GUESSING I need to override the “renderTableRow” method but wondering if there’s a better way to do this.

Again, I’m using the CArrayDataProvider and the array my data provider is based on is like so:


   'id' => ...,

   'name' => ....,

   // etc...

   'secondRow' => array(

        // Second row data here



I’ve thought about going with a purely flat array so that every other row is the special second row but SOME rows won’t have a second row.

And in my widget call in my view:

        $this->widget('application.extensions.MyCashViewGrid', array(

            'dataProvider' => $dataProvider,

             // etc...

            'columns' => array(



                'cash_date:date:Cash Date',

                'cash_amount:money:Cash Amount',



                    'class' => 'MyActionColumn',

                    'actions' => array(

                        'Quick Edit',






And I’ve got a MyActionColumn class rendering that stuff.

Basically trying to make it so some items have a second row that’s a “quick edit” for the row above it. But not all rows will have it.

Any thoughts?