我正在使用下面的代码来显示数据。
$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(),
),
));