CGridView customized CCheckBoxColumn

You are viewing revision #3 of this wiki article.
This is the latest version of this article.
You may want to see the changes made in this revision.

« previous (#2)

Hi friends,

Here two things we are going to do

1) How to add dynamic tag in header for styling header layout and

2) How to add dynamic tag in column for styling column layout

3) How to add dynamic tag after filter result.

a) First point can be achieved by below code (Its default attribute from YII)

$this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'programm-grid',
	'dataProvider'=>$model->search(),
	//'rowCssClassExpression'=>'$this->dataProvider->data[$row]->pgm_id',
	'filter'=>$model,
	'columns'=>array(
 		array(
 			'header'=>'html',
 			'id'=>'state_id',
 			'class'=>'CCheckBoxColumn',
 			'selectableRows' => '50',
 			'selectableRows'=>2,
 			'value'=>'$data->pgm_web_status',
 			'headerTemplate'=>'<label>{item}<span></span></label>',
 			'htmlOptions'=>array('style'=>'width: 20px','class'=>'chandran'),
 		),
          ),
));

b) Second point can be achieved by below jquery code (This is a trick from me :) )

Yii::app()->clientScript->registerScript('search', "

$('[id^=state_id_]').wrap('<label class=list></label>');
$( '<span></span>' ).insertAfter( '[id^=state_id_]');		
		
");

c) Third point can be achieved by below jquery code in cgridveiw (Trick here goes)

$this->widget('zii.widgets.grid.CGridView', array(
	'afterAjaxUpdate'=>'function(id, data){
 		$("[id^=state_id_]").wrap("<label class=list></label>");
 		$("<span></span>").insertAfter("[id^=state_id_]");		
	}',
        'id'=>'programm-grid',
));

I hope it will help some one else who trying to modify layout for CCheckBoxColumn column Have a fun cheers :)