Merge pull request #2284 from kartik-v/patch-12

Raw content return for Grid DataColumn & Column
This commit is contained in:
Qiang Xue
2014-02-25 16:37:39 -05:00
2 changed files with 29 additions and 9 deletions

View File

@ -115,6 +115,22 @@ class Column extends Object
return trim($this->footer) !== '' ? $this->footer : $this->grid->emptyCell;
}
/**
* Get the raw data cell content.
* @param mixed $model the data model
* @param mixed $key the key associated with the data model
* @param integer $index the zero-based index of the data model among the models array returned by [[GridView::dataProvider]].
* @return string the rendering result
*/
protected function getDataCellContent($model, $key, $index)
{
if ($this->content !== null) {
return call_user_func($this->content, $model, $key, $index, $this);
} else {
return null;
}
}
/**
* Renders the data cell content.
* @param mixed $model the data model
@ -124,11 +140,7 @@ class Column extends Object
*/
protected function renderDataCellContent($model, $key, $index)
{
if ($this->content !== null) {
return call_user_func($this->content, $model, $key, $index, $this);
} else {
return $this->grid->emptyCell;
}
return ($this->content !== null) ? $this->getDataCellContent($model, $key, $index) : $this->grid->emptyCell;
}
/**

View File

@ -136,9 +136,9 @@ class DataColumn extends Column
}
/**
* @inheritdoc
* Return raw content
*/
protected function renderDataCellContent($model, $key, $index)
protected function getDataCellContent($model, $key, $index)
{
if ($this->value !== null) {
if (is_string($this->value)) {
@ -149,8 +149,16 @@ class DataColumn extends Column
} elseif ($this->content === null && $this->attribute !== null) {
$value = ArrayHelper::getValue($model, $this->attribute);
} else {
return parent::renderDataCellContent($model, $key, $index);
return parent::getDataCellContent($model, $key, $index);
}
return $this->grid->formatter->format($value, $this->format);
return $value;
}
/**
* @inheritdoc
*/
protected function renderDataCellContent($model, $key, $index)
{
return $this->grid->formatter->format($this->getDataCellContent($model, $key, $index), $this->format);
}
}