Flex: DataGrid controlado por la base de datos: flechas que desaparecen
-
11-07-2019 - |
Pregunta
En Flex estoy usando el siguiente código para permitir la ordenación en un DataGrid (los datos están localizados y ordenados en el lado del servidor).
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(); }
Esto funciona perfectamente, excepto que no se muestran las flechas que indican la ordenación. ¿Cómo puedo lograr eso?
¡Gracias! / Niels
Solución
Hay un ejemplo aquí si esto es lo que está buscando: http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click- una columna /
Parece que necesita actualizar la colección utilizada por su proveedor de datos.
Otros consejos
He encontrado el mismo problema y la única solución que encontré fue anular el DataGrid y crear uno personalizado. Aquí está la clase:
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();
}
}
Debe llamar específicamente al método placeSortArrow () cuando obtiene el evento HEADER_RELEASE y establece el índice de columna y la información de dirección.
en el código anterior, ¿qué hace " esto " me refiero a si es la cuadrícula de datos porque this.query.SortField me confunde, supongo que 'this' y " query 'son sus propios objetos personalizados. y por qué estás buscando recuento. lo que cuenta es eso.
Saludos -Mohan