sortableAttributes option of Yii


sortableAttributes option of Yii

我正在使用下面的代码来显示数据。

$widgetOptions = array(
    'dataProvider' => $this->dataProvider,
    'itemView' => $this->viewName('list', $_REQUEST['listType']),
    'id' => 'list_view',
    'viewData' => array('passing_percent' => $passing_percent),
    'sortableAttributes'=>array(
        'stud_i',
    ),
);
$this->widget('booster.widgets.TbListView', $widgetOptions);

为了根据学生id对数据进行排序,我使用了sortableAttributes选项。但是,我不想第一次按ASC顺序对数据进行排序,而是想使用DESC顺序对其进行排序(即,当第一次单击时,它将按DESC顺序排序数据),因为我的查询已经按ASC顺序返回了结果。

我试过下面的代码,但没有成功。

$this->dataProvider->sort->defaultOrder='stud_i DESC';

也尝试过:

defaultOrder'=>array(
    'stud_i'=>CSort::SORT_DESC,
)

请建议我如何修复它。

我在创建提供程序时执行此操作。看看我的一些代码。。。

    $sortAttrs = array(
        'date' => array(
            'asc' => 'a.id ASC',
            'desc' => 'a.id DESC',
            'default' => 'desc', // <-- default sorting per field
        ) /* Here I add more fields that I want be able to sort later */
    );
    return new CommentsSqlDataProvider($selectCmd, array(
        'keyField' => 'id',
        'totalItemCount' => $count,
        'params' => $params,
        'sort' => array(
            'attributes' => $sortAttrs,
            'defaultOrder' => array(
                'date' => CSort::SORT_DESC // <--- DEFAULT SORTING WHEN NO SORT KEY WAS SPECIFIED
            ),
        ),
        'pagination' => array(
            'pageSize' => $search->getLimit(),
        ),
    ));