Yii CGridView过滤器不在一列上工作

时间:2013-02-04 08:50:15

标签: javascript jquery filter yii cgridview

好。开始了。 我有一个常规的CGridView来过滤我的数据。

这是标题: The header of the CGridView

除“船上”以外的所有过滤器都能正常工作。事情是:它不适用于“序列化”javascript阶段。 所以当jquery.yiigridview.js运行这段代码时:

$('body').undelegate(inputSelector, 'change').delegate(inputSelector, 'change', function(){
                var data = $(inputSelector).serialize();
                if(settings.pageVar!==undefined)
                    data += '&'+settings.pageVar+'=1';
                $.fn.yiiGridView.update(id, {data: data});
            });
无论我写入文本字段,

Serialize都会返回“Anketa [onboard] = 0”。 我尝试了所有类型的控件(当我认为这是服务器端问题时):

array(
    'name' => 'onboard',
    'type' => 'raw',
    'value'=>'$data->getOnBoardLabel()',
    //'filter' => CHtml::activeCheckBox($model,'onboard'),
    //'filter' => CHtml::activeDropDownList($model, 'onboard',Lookup::items('onboard')),
    'filter' => CHtml::activeTextField($model,'onboard'),
),

并没有改变。它仍然不想发送过滤器的正确值。

我应该怎么做?

谢谢!!!

2 个答案:

答案 0 :(得分:0)

由于$model->onboard是您在评论中指定的枚举,因此您可能需要使用下拉列表过滤器。要在CDataColumn中渲染渲染过滤器,您必须将其指定为数组。所以代码将是

array(
    'name' => 'onboard',
    'type' => 'raw',
    'value'=>'$data->getOnBoardLabel()',
    'filter' => Lookup::items('onboard'),
),

答案 1 :(得分:0)

对不起伙计们。 页面上还有另一个noboard控件。所以序列化很奇怪。