我的项目中遇到了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 :(得分:0)
typeSelectedName
,而在模型文件中,您检查type
属性的条件。最好在multiselect中添加一些选项以调用模型过滤的自定义ajax:在返回数据时执行更新网格。这样,multyselect将作为唯一的过滤选项(不考虑其他选项);虽然您可以通过this.form.serialize()
获取表单数据并进行联接过滤。