Browse Source

Renamed DataColumn::type to format.

Added GridView::dataColumnClass.
tags/2.0.0-beta
Qiang Xue 12 years ago
parent
commit
1398de3f4a
  1. 12
      framework/yii/widgets/GridView.php
  2. 4
      framework/yii/widgets/grid/DataColumn.php

12
framework/yii/widgets/GridView.php

@ -26,6 +26,7 @@ class GridView extends ListViewBase
const FILTER_POS_FOOTER = 'footer'; const FILTER_POS_FOOTER = 'footer';
const FILTER_POS_BODY = 'body'; const FILTER_POS_BODY = 'body';
public $dataColumnClass = 'yii\widgets\grid\DataColumn';
public $caption; public $caption;
public $captionOptions = array(); public $captionOptions = array();
public $tableOptions = array('class' => 'table table-striped table-bordered'); public $tableOptions = array('class' => 'table table-striped table-bordered');
@ -277,7 +278,7 @@ class GridView extends ListViewBase
$column = $this->createDataColumn($column); $column = $this->createDataColumn($column);
} else { } else {
$column = Yii::createObject(array_merge(array( $column = Yii::createObject(array_merge(array(
'class' => DataColumn::className(), 'class' => $this->dataColumnClass,
'grid' => $this, 'grid' => $this,
), $column)); ), $column));
} }
@ -300,14 +301,15 @@ class GridView extends ListViewBase
*/ */
protected function createDataColumn($text) protected function createDataColumn($text)
{ {
if (!preg_match('/^(\w+)(\s*:\s*(\w+))?$/', $text, $matches)) { if (!preg_match('/^([\w\.]+)(:(\w*))?(:(.*))?$/', $text, $matches)) {
throw new InvalidConfigException('The column must be specified in the format of "Attribute" or "Attribute:Type"'); throw new InvalidConfigException('The column must be specified in the format of "Attribute", "Attribute:Format" or "Attribute:Format:Header');
} }
return Yii::createObject(array( return Yii::createObject(array(
'class' => DataColumn::className(), 'class' => $this->dataColumnClass,
'grid' => $this, 'grid' => $this,
'attribute' => $matches[1], 'attribute' => $matches[1],
'type' => isset($matches[3]) ? $matches[3] : 'text', 'format' => isset($matches[3]) ? $matches[3] : 'text',
'header' => isset($matches[5]) ? $matches[5] : null,
)); ));
} }

4
framework/yii/widgets/grid/DataColumn.php

@ -22,7 +22,7 @@ class DataColumn extends Column
{ {
public $attribute; public $attribute;
public $value; public $value;
public $type; public $format;
/** /**
* @var boolean whether to allow sorting by this column. If true and [[attribute]] is found in * @var boolean whether to allow sorting by this column. If true and [[attribute]] is found in
* the sort definition of [[GridView::dataProvider]], then the header cell of this column * the sort definition of [[GridView::dataProvider]], then the header cell of this column
@ -90,6 +90,6 @@ class DataColumn extends Column
} else { } else {
return parent::renderDataCellContent($item, $index); return parent::renderDataCellContent($item, $index);
} }
return $this->grid->formatter->format($value, $this->type); return $this->grid->formatter->format($value, $this->format);
} }
} }

Loading…
Cancel
Save