alex-w
(Pr0j3ct A1ex)
1
Being able to set per row attribute expressions in GridView etc would be handy.
I’m trying to add a value attribute (I know it’s not valid) so it can be used by some js and i’m currently using
'rowCssClassExpression' => '"\" value=\"" . $data->dataID'
which doesn’t look too elegant.
rtfm
(Hofrob)
2
I needed this too and ended up extending CGridView. I had to completely override renderTableRow and I’m not too fond of it either.
public function renderTableRow($row) {
$data = $this->dataProvider->data[$row];
if($this->rowTitleExpression !== null)
$title = CHtml::encode($this->evaluateExpression($this->rowTitleExpression, array(
'row' => $row,
'data' => $data
)));
if($this->rowCssClassExpression !== null)
echo '<tr class="'.$this->evaluateExpression($this->rowCssClassExpression, array(
'row' => $row,
'data' => $data
)).'"'.
($title ? ' title="'.$title.'"' : '').'>';
else if(is_array($this->rowCssClass) && ($n = count($this->rowCssClass)) > 0)
echo '<tr class="'.$this->rowCssClass[$row % $n].'"'.
($title ? ' title="'.$title.'"' : '').'>';
else
echo '<tr>';
foreach($this->columns as $column)
$column->renderDataCell($row);
echo "</tr>\n";
}
IMPORTANT: If somebody’s using this, please note that you won’t get a title-tag when there is no rowCssClass- or rowCssClassExpression-property!
So yes, I too think that would be a useful feature!