CGridView и фильтры

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
xoma
Сообщения: 641
Зарегистрирован: 2009.04.02, 15:24
Откуда: Ногинск
Контактная информация:

CGridView и фильтры

Сообщение xoma »

Добрый день!

Есть несколько вопросов по фильтрации в CGridView.

1. В базе данных поле типа Integer имеет значение по умолчанию - 0, при рендеренге таблицы используя CGridView имеется фильт:

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

'filter'=>$model

соответсвенно в те поля, которые имеют дефолтные значения, эти самые значения сразу же и подставляются. Это касается и генерируемой формы Advаnced Search. Можно ли как-то избежать такого эффекта ?

2. Можно ли изменить отображение полей для ввода в фильтре ? Скажем вместо инпута сделать дроп-даун или выбор даты?

3. Можно ли фильтровать по определенным колонкам ? Т.е. в таблице я вывожу все, а вот фильтр разрешаю только по некоторым полям.

Так как параметру "filter" должен быть присвоен экземпляр модели, а у CGridView кроме свойств filterCssClass и filterPosition, больше нет никаких параметров, относящихся к фильтрации - отсюда эти вопросы и возникли.
Аватара пользователя
xoma
Сообщения: 641
Зарегистрирован: 2009.04.02, 15:24
Откуда: Ногинск
Контактная информация:

Re: CGridView и фильтры

Сообщение xoma »

Нашел решение http://www.yiiframework.com/doc/api/CDataColumn решает некоторые вопросы =)
Последний раз редактировалось xoma 2010.06.05, 18:05, всего редактировалось 1 раз.
ynik
Сообщения: 124
Зарегистрирован: 2010.05.05, 13:07
Откуда: Ukraine

Re: CGridView и фильтры

Сообщение ynik »

2. Можно ли изменить отображение полей для ввода в фильтре ? Скажем вместо инпута сделать дроп-даун или выбор даты?

3. Можно ли фильтровать по определенным колонкам ? Т.е. в таблице я вывожу все, а вот фильтр разрешаю только по некоторым полям.
если я правильно понял, так по мойму эти вопросы решены и предствленны в демо блоге, что запретить фильтрацию в нужной колонке там

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

'filter'=>false, 
Аватара пользователя
xoma
Сообщения: 641
Зарегистрирован: 2009.04.02, 15:24
Откуда: Ногинск
Контактная информация:

Re: CGridView и фильтры

Сообщение xoma »

Ответы на 2 и 3 я уже нашел. Что же касается первого вопроса - то пока нет. Есть идеи?
ynik
Сообщения: 124
Зарегистрирован: 2010.05.05, 13:07
Откуда: Ukraine

Re: CGridView и фильтры

Сообщение ynik »

по первому вопросу, что нужно только чтоб не выводились дефолтные значение 0, а вместо него чтоб пусто было?
Аватара пользователя
xoma
Сообщения: 641
Зарегистрирован: 2009.04.02, 15:24
Откуда: Ногинск
Контактная информация:

Re: CGridView и фильтры

Сообщение xoma »

Именно! Чтобы просто пустое поле было.
ynik
Сообщения: 124
Зарегистрирован: 2010.05.05, 13:07
Откуда: Ukraine

Re: CGridView и фильтры

Сообщение ynik »

я решал этот вопрос когда мне надо было заменить значение вместо 0, 1, и 2 на рисунки,делал так, может и вам подойдет

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

public function replacementValues($param)
    {
        if($param == 0)
        return     '&nbsp';
        else
        return      '<div style="text-align:center"><img src="/images/tick.png" alt="yes" title="yes" width="16" height="16" /></div>';
    } 
и в виджет

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

array(
        'name' => 'doc',
                'type' => 'raw',
        'value'=> 'User::replacementValues($data->doc)',
        'filter'=>false,
        ), 
а вы просто провертье на нуль и вывод ретурн пустого значения "&nbsp"
vlastachu
Сообщения: 50
Зарегистрирован: 2010.03.01, 20:15

Re: CGridView и фильтры

Сообщение vlastachu »

'value'=> 'User::replacementValues($data->doc)' точно в кавычках? просто интересно так получается)
ynik
Сообщения: 124
Зарегистрирован: 2010.05.05, 13:07
Откуда: Ukraine

Re: CGridView и фильтры

Сообщение ynik »

vlastachu писал(а):'value'=> 'User::replacementValues($data->doc)' точно в кавычках? просто интересно так получается)
именно для CGridView только в кавычках, а для CDetailView без кавычек, гляньте в демо блоге как там линк задают для CGridView и CDetailView
vlastachu
Сообщения: 50
Зарегистрирован: 2010.03.01, 20:15

Re: CGridView и фильтры

Сообщение vlastachu »

нда...очень неочевидный момент...
froggy
Сообщения: 14
Зарегистрирован: 2011.07.30, 13:14

Re: CGridView и фильтры

Сообщение froggy »

>Что же касается первого вопроса - то пока нет. Есть идеи?

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

$model = new Model("search");
$model->unsetAttributes(); 
Ответить