Yii echmultiselect не фильтрует мультиселект

У меня проблемы с echmultiselect в моем проекте, он не фильтрует вообще и запрещает другие фильтры столбцов, которые уже работают.

Посмотреть

    array (
'name'=>'typeSelectedName',
'value'=>'$data->typeSelected->name',
'filter'=> $this->widget('EchMultiselect', array(
'model' => $model,
'dropDownAttribute' => 'typeSelectedName',
'dropDownHtmlOptions'=> array(
'style'=>'width:225px;',
'multiple'=>true,
),
'data' => array('A'=>'A','B'=>'B','C'=>'C','Z'=>'Z','X'=>'X','K'=>'K','T'=>'T'),
'options' => array(
'header'=> Yii::t('EchMultiSelect.EchMultiSelect',''),
'buttonWidth' => 80,
'position'=>array('my'=>'left bottom', 'at'=>'left top'),
'ajaxRefresh' => true,
'multiselect'=>true,
'filter'=>true,
),
),
true // capture output; needed so the widget displays inside the grid
),
),

модель

$criteria=new CDbCriteria;

$criteria->compare('id',$this->id);
if(!empty($this->type)) {
foreach($this->type as $v) {
$criteria->compare('type', $v, false, 'OR');
}
}
$criteria->compare('sa_id',$this->sa_id,true);

я использую yii 1.1.13, и я могу видеть это Cgridview:
введите описание изображения здесь

0

Решение

  1. Ваш выпадающий атрибут в multyselect typeSelectedName в то время как в файле модели для критериев вы проверяете type приписывать.
  2. Multyselect делает вызов ajax; поэтому вам нужно проверить и какие данные передаются в нем.

Лучше добавить несколько опций в множественный выбор, чтобы вызывать пользовательский Ajax для фильтрации моделей: по возвращенным данным обновляйте сетку. Таким образом, multyselect будет работать как единственная опция фильтра (другие опции не будут учитываться); хотя вы можете получить данные формы через this.form.serialize() и сделать совместную фильтрацию.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector