Flex: база данных, управляемая DataGrid: стрелки исчезают
Во Flex я использую следующий код, чтобы разрешить сортировку в DataGrid (данные разбиты на страницы и отсортированы на стороне сервера).
приватная функция headerReleaseHandler(событие:DataGridEvent): пустота { var column:DataGridColumn = DataGridColumn(event.currentTarget.columns[event.columnIndex]); если (this.count>0) { if(this.query.SortField == column.dataField) { this.query.SortAscending =!this.query.SortAscending; } еще { this.query.SortField = column.dataField; this.query.SortAscending = true; } this.fill (); } event.preventDefault (); }
Это работает отлично, за исключением того, что стрелки, обозначающие сортировку, не отображаются. Как я могу это сделать?
Спасибо! /Niels
3 ответа
Вот пример, если это то, что вы ищете: http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click-a-column/
Похоже, вам нужно обновить коллекцию, используемую вашим провайдером данных.
Я столкнулся с той же проблемой, и единственное решение, которое я нашел, было переопределить DataGrid и создать пользовательский. Вот класс:
public class DataGridCustomSort extends DataGrid
{
public function DataGridCustomSort()
{
super();
addEventListener(DataGridEvent.HEADER_RELEASE,
headerReleaseHandlerCustomSort,
false, EventPriority.DEFAULT_HANDLER);
}
public function headerReleaseHandlerCustomSort(event:DataGridEvent):void {
mx_internal::sortIndex = event.columnIndex;
if (mx_internal::sortDirection == null || mx_internal::sortDirection == "DESC")
mx_internal::sortDirection = "ASC";
else
mx_internal::sortDirection = "DESC";
placeSortArrow();
}
}
Вы должны специально вызывать метод placeSortArrow() при получении события HEADER_RELEASE и устанавливать индекс столбца и информацию о направлении.
В приведенном выше коде к слову "this" относится это сетка данных, потому что меня смущает this.query.SortField, я предполагаю, что "this" и "query" являются вашими собственными объектами и почему вы проверяете счетчик. какой счет это.
С уважением Мохан