Я использую приведенный ниже код для отображения данных.
$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,
)
Пожалуйста, предложите, как я могу это исправить.
Я делаю это, когда я создаю провайдера. Посмотрите на некоторые из моего кода …
$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(),
),
));
Других решений пока нет …