Параметр sortableAttributes для 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);

Чтобы отсортировать данные на основе идентификатора студента, я использовал опцию sortableAttributes. Но вместо того, чтобы сортировать данные в порядке ASC в первый раз, я хочу отсортировать их, используя порядок DESC (т. Е. При первом нажатии данные будут отсортированы в порядке DESC), поскольку мой запрос уже возвращает результат в порядке ASC ,

Я попробовал ниже коды, но не повезло.

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

Также попробовал:

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

Пожалуйста, предложите, как я могу это исправить.

0

Решение

Я делаю это, когда я создаю провайдера. Посмотрите на некоторые из моего кода …

    $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(),
),
));
1

Другие решения

Других решений пока нет …