CDataColumn

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Аватара пользователя
BuCeFaL
Сообщения: 447
Зарегистрирован: 2010.03.17, 21:22
Откуда: Kiev
Контактная информация:

CDataColumn

Сообщение BuCeFaL »

Сейчас:

Код: Выделить всё

    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'=>'')); /// <----------- prompt hardcode
            else if($this->filter===null)
                echo CHtml::activeTextField($this->grid->filter, $this->name, array('id'=>false));
        }
        else
            parent::renderFilterCellContent();
    }
 
Патч

Код: Выделить всё

    public $filterPrompt = '';
    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))
                if(is_string($this->filterPrompt))
                    echo CHtml::activeDropDownList($this->grid->filter, $this->name, $this->filter, array('id'=>false,'prompt'=>$this->filterPrompt));
                else
                    echo CHtml::activeDropDownList($this->grid->filter, $this->name, $this->filter, array('id'=>false));
            else if($this->filter===null)
                echo CHtml::activeTextField($this->grid->filter, $this->name, array('id'=>false));
        }
        else
            parent::renderFilterCellContent();
    }
 

Позволяет в ручную устанавливать пустое значение для фильтра или отказаться от него, но в последнем случае нужно дописать обновление грида
Ответить