Issue
I want to add class name so class name will be same as row value data
$this->widget('bootstrap.widgets.TbGridView',array(
'id'=>'testcaseResult-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'rowCssClassExpression'=>'"items[]_{$data->result_id}"',
'columns'=>array(
....
array(
'name'=>'result_text',
'headerHtmlOptions'=>array('style'=>'width:300px;text-align:center;'),
'htmlOptions'=>array('class'=>'result_text'),
),
array(
'name'=>'result_severnity',
'value'=> '$data->getResultSevernity()',
'filter'=>$resultSevernityList,
'htmlOptions'=>array('class'=>$data->getResultSevernity()),
'headerHtmlOptions'=>array('style'=>'width:300px;text-align:center;'),
....
- In first field 'result_text' is field name in table. Which gives its value and I want classname as same value. But not 'result_text'.
- I have result_severnity which have different numerical value. I have created fubction in model to get specific string value for it. And I want same class name for it.
'htmlOptions'=>array('class'=>$data->getResultSevernity()),
My question is for No.2 To have same value for class name as it shown in row data, which is not working.
Thanks in advance for solution.
Solution
Finally got answer from my Guru. Instead of giving class name to self element adding a span tag with class name is great trick.
- setting returned value with span tag
- adding type => 'raw'
- passing a parameter for adding span tag
'value'=> '$data->getResultSevernity('HTML')',
........
array(
'name'=>'result_severnity',
'type' => 'raw',
'value'=> '$data->getResultSevernity()',
'filter'=>$resultSevernityList,
'headerHtmlOptions'=>array('style'=>'width:300px;text-align:center;'),
....
model:
public function getResultSevernity($type="")
{
$resultSevernity = $this->result_severnity;
switch($resultSevernity)
{
case '0':
$returnText = t("common","severnity_none");
break;
case '10':
$returnText = t("common","severnity_minor");
break;
......
}
if($type=="HTML") {
$class = "severnity_".$resultSevernity;
$returnText = cHtmlTag($returnText, 'span', array('class'=>$class));
}
return $returnText;
}
Answered By - Niral Shakya
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.