Having datain CGridView as per condition

I would like to have my CGridView(i.e. my admin.php) show only data in which one of the columns is empty or null.

How can I achieve that

Any Ideas?

Extend CGridView and override the method renderTableRow($row). See the source


         * Renders a table body row.

         * @param integer $row the row number (zero-based).


        public function renderTableRow($row)


                foreach($this->columns as $column) 


                   if(... check for empty value ...)   

                     //see function CdataColumn::renderDataCellContent($row,$data) how extract the value

                    return; //if empty column found





will this code be in the model or controller?

Maybe I don’t understant your problem… but why you just don’t add the needed condition to get only those rows you need

You have to create a own CGridView class and save it for example under protected/components


class EmptyColumnsGridView extends CGridView 


        public function renderTableRow($row)


           //... like above    



And in your view:

   $this->widget('EmptyColumnsGridView', array(



But if you are able to query only the data with empty columns (see remark from mdomba) it would be better.

But maybe it depends on columns visibility, calculated data … etc.

I cannot change the needed condition as there is certain use of it but I do not want to show it’s row