BootGridView过滤器在Yii Framework中不起作用

时间:2013-07-06 06:08:04

标签: yii

我尝试使用BootGridView实现排序,但它似乎不起作用。这是代码行。

<?php $this->widget('bootstrap.widgets.BootGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
    'user_id',
    array('name'=>'user_type',
                'value'=>'User::getType($data->user_type)'),
    'username',
    array('header'=>'Name',
                'type'=>'raw',
                'value'=>  'CHtml::link($data->firstname." ".$data->lastname, array("view", "id"=>$data->id))'
    ),
            array('name' => 'status',
        'type' => 'raw',
        'value' => '$data->status == 1 ? "Active" : CHtml::link("In Active", "javascript:void(0);", array("id" => "active_" . $data->id, "onClick"=>"js:activate($data->id)"))'
    ),
    /*
    'email',
    'dob',
    'profession',
    'hobby',
    'height',
    'weight',
    'weight_taken_on',
    'login_attempt',

    'registration_date',
    */
    array(
        'class'=>'bootstrap.widgets.BootButtonColumn',
    ),
),

)); ?&GT;

代码似乎没有按预期对表进行排序。这可能是什么问题。 ?

1 个答案:

答案 0 :(得分:1)

排序是在数据提供程序中配置的,而不是在网格视图中配置的。因此,您应该查看模型的search()方法。你需要这样的东西:

return new CActiveDataProvider('User',array(
    // ...
    'sort' => array(
        'attributes' => array(
            'name',
            'email',
            // ...

请查看CSort,尤其是那里的attributes属性,详细了解您可以在此处使用的排序选项。