Flex: banco de dados orientado DataGrid: setas desaparecendo
-
11-07-2019 - |
Pergunta
No Flex eu estou usando o código a seguir para permitir a classificação em um DataGrid (os dados são paginados e serverside ordenada).
private function headerReleaseHandler(event:DataGridEvent):void { var column:DataGridColumn = DataGridColumn(event.currentTarget.columns[event.columnIndex]); if(this.count>0) { if(this.query.SortField == column.dataField) { this.query.SortAscending = !this.query.SortAscending; } else { this.query.SortField = column.dataField; this.query.SortAscending = true; } this.fill(); } event.preventDefault(); }
Isso funciona perfeitamente, exceto que as setas que indicam ordenação não é mostrado. Como posso conseguir isso?
Obrigado! / Niels
Solução
Há um exemplo aqui se é isso que você está procurando: http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click- uma coluna /
Parece que você precisa para atualizar a coleção usada pelo seu dataprovider.
Outras dicas
Eu encontrei o mesmo problema e que a única solução que eu encontrei foi a de substituir o DataGrid e criar um personalizado. Aqui é a classe:
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();
}
}
Você tem que chamar especificamente o método placeSortArrow () quando você começa o evento HEADER_RELEASE e definir o índice de coluna e informações de direção.
no código acima o que significa "presente" referem-se é o datagrid porque estou confuso com this.query.SortField, estou assumindo 'isto' e "consulta' são os seus próprios objetos personalizados. E por que você está verificando para a contagem. o que conta é que.
Saudações -Mohan