CDataColumn
鍖 | zii.widgets.grid |
---|---|
缁ф壙 | class CDataColumn » CGridColumn » CComponent |
婧愯嚜 | 1.1 |
鐗堟湰 | $Id: CDataColumn.php 3448 2011-11-18 10:21:42Z mdomba $ |
婧愮爜 | framework/zii/widgets/grid/CDataColumn.php |
Either name or value should be specified. The former specifies a data attribute name, while the latter a PHP expression whose value should be rendered instead.
The property sortable determines whether the grid view can be sorted according to this column. Note that the name should always be set if the column needs to be sortable. The name value will be used by CSort to render a clickable link in the header cell to trigger the sorting.
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
cssClassExpression | string | 璁$畻PHP琛ㄨ揪寮忎腑姣忎竴涓暟鎹厓浠讹紝
鍏剁粨鏋滀綔涓鸿繖涓暟鎹厓浠剁殑CSS绫诲悕銆傚湪杩欎釜琛ㄨ揪寮忎腑锛
鍙橀噺$row 鏄鍙凤紙闆跺熀纭锛夛紱 $data 鏄琛岀殑鏁版嵁妯″瀷锛
$this 鏄垪鐨勫璞° |
CGridColumn |
filter | mixed | the HTML code representing a filter input (eg a text field, a dropdown list) that is used for this data column. | CDataColumn |
footer | string | 搴曢儴鍏冧欢鏂囨湰銆傝娉ㄦ剰锛屽畠涓嶄細鍙樻垚HTML缂栫爜銆 | CGridColumn |
footerHtmlOptions | array | HTML涓簳閮ㄥ厓浠舵爣绛剧殑閫夐」銆 | CGridColumn |
grid | CGridView | 鎷ユ湁姝ゅ垪鐨勮〃鏍艰鍥惧璞° | CGridColumn |
hasFooter | boolean | 纭畾姝ゅ垪鏄惁鏈夊簳閮ㄥ厓浠躲 杩欏喅瀹氬熀浜庢槸鍚footer宸茶缃 | CGridColumn |
header | string | 澶撮儴鍏冧欢鏂囨湰銆傝娉ㄦ剰锛屽畠涓嶄細鍙樻垚HTML缂栫爜銆 | CGridColumn |
headerHtmlOptions | array | HTML涓ご閮ㄥ厓浠舵爣绛剧殑閫夐」銆 | CGridColumn |
htmlOptions | array | HTML涓暟鎹厓浠舵爣绛剧殑閫夐」銆 | CGridColumn |
id | string | the ID of this column. | CGridColumn |
name | string | the attribute name of the data model. | CDataColumn |
sortable | boolean | whether the column is sortable. | CDataColumn |
type | string | the type of the attribute value. | CDataColumn |
value | string | a PHP expression that will be evaluated for every data cell and whose result will be rendered as the content of the data cells. | CDataColumn |
visible | boolean | 姝ゅ垪鏄惁鍙銆傞粯璁や负true銆 | CGridColumn |
鍏叡鏂规硶
鍙椾繚鎶ゆ柟娉
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
renderDataCellContent() | Renders the data cell content. | CDataColumn |
renderFilterCellContent() | Renders the filter cell content. | CDataColumn |
renderFooterCellContent() | Renders the footer cell content. | CGridColumn |
renderHeaderCellContent() | Renders the header cell content. | CDataColumn |
灞炴ц缁
the HTML code representing a filter input (eg a text field, a dropdown list) that is used for this data column. This property is effective only when CGridView::filter is set. If this property is not set, a text field will be generated as the filter input; If this property is an array, a dropdown list will be generated that uses this property value as the list options. If you don't want a filter for this data column, set this value to false.
the attribute name of the data model. Used for column sorting, filtering and to render the corresponding attribute value in each data cell. If value is specified it will be used to rendered the data cell instead of the attribute value.
whether the column is sortable. If so, the header cell will contain a link that may trigger the sorting. Defaults to true. Note that if name is not set, or if name is not allowed by CSort, this property will be treated as false.
鍙傝
the type of the attribute value. This determines how the attribute value is formatted for display. Valid values include those recognizable by CGridView::formatter, such as: raw, text, ntext, html, date, time, datetime, boolean, number, email, image, url. For more details, please refer to CFormatter. Defaults to 'text' which means the attribute value will be HTML-encoded.
a PHP expression that will be evaluated for every data cell and whose result will be rendered
as the content of the data cells. In this expression, the variable
$row
the row number (zero-based); $data
the data model for the row;
and $this
the column object.
鏂规硶璇︾粏
public void init()
|
public function init()
{
parent::init();
if($this->name===null)
$this->sortable=false;
if($this->name===null && $this->value===null)
throw new CException(Yii::t('zii','Either "name" or "value" must be specified for CDataColumn.'));
}
Initializes the column.
protected void renderDataCellContent(integer $row, mixed $data)
| ||
$row | integer | the row number (zero-based) |
$data | mixed | the data associated with the row |
protected function renderDataCellContent($row,$data)
{
if($this->value!==null)
$value=$this->evaluateExpression($this->value,array('data'=>$data,'row'=>$row));
else if($this->name!==null)
$value=CHtml::value($data,$this->name);
echo $value===null ? $this->grid->nullDisplay : $this->grid->getFormatter()->format($value,$this->type);
}
Renders the data cell content. This method evaluates value or name and renders the result.
protected void renderFilterCellContent()
|
protected function renderFilterCellContent()
{
if(is_string($this->filter))
echo $this->filter;
else if($this->filter!==false && $this->grid->filter!==null && $this->name!==null && strpos($this->name,'.')===false)
{
if(is_array($this->filter))
echo CHtml::activeDropDownList($this->grid->filter, $this->name, $this->filter, array('id'=>false,'prompt'=>''));
else if($this->filter===null)
echo CHtml::activeTextField($this->grid->filter, $this->name, array('id'=>false));
}
else
parent::renderFilterCellContent();
}
Renders the filter cell content. This method will render the filter as is if it is a string. If filter is an array, it is assumed to be a list of options, and a dropdown selector will be rendered. Otherwise if filter is not false, a text field is rendered.
protected void renderHeaderCellContent()
|
protected function renderHeaderCellContent()
{
if($this->grid->enableSorting && $this->sortable && $this->name!==null)
echo $this->grid->dataProvider->getSort()->link($this->name,$this->header);
else if($this->name!==null && $this->header===null)
{
if($this->grid->dataProvider instanceof CActiveDataProvider)
echo CHtml::encode($this->grid->dataProvider->model->getAttributeLabel($this->name));
else
echo CHtml::encode($this->name);
}
else
parent::renderHeaderCellContent();
}
Renders the header cell content. This method will render a link that can trigger the sorting if the column is sortable.