0

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

这是标题: 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});
            });

无论我在文本字段中写入什么,序列化都会返回“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'),
),

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

伙计们我该怎么办?

谢谢!!!

4

2 回答 2

0

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

array(
    'name' => 'onboard',
    'type' => 'raw',
    'value'=>'$data->getOnBoardLabel()',
    'filter' => Lookup::items('onboard'),
),
于 2013-02-04T09:02:25.037 回答
0

对不起大家。页面上有另一个 noboard 控件。所以序列化表现得很奇怪。

于 2013-02-04T09:08:08.897 回答