CDataColumn 小改进

目前假如在设置column时,指定了name,但不希望该栏允许排序,设置sortable=false

但是这样操作后,就没有header了,需要自行设定header内容

我觉得这里可以稍微改进一下,改进方法如下:

yii\framework\zii\widgets\grid\CDataColumn.php

line: 108


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->grid->dataProvider instanceof CActiveDataProvider && ($model=$this->grid->dataProvider->getModel()) && $this->name!==null) // 增加的

        echo $model->getAttributeLabel($this->name); // 增加的第二行

    else

        parent::renderHeaderCellContent();

}

还有另外一种方法

不用name,用label和value来代替即可,呵呵!

你的sorter配置允许对该column排序么?如果不允许,显示的会是一个label,而不是link。你不需要设置sortable=false。

才疏学浅,sorter配置是指哪里?

CActiveDataProvider