2

我尝试使用 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',
    ),
),

)); ?>

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

4

1 回答 1

1

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

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

看看那里的属性CSort,尤其是attributes那里的属性,以了解有关您可以在此处使用的排序选项的更多信息。

于 2013-07-06T09:56:41.653 回答