Flex: DatabaseGrid guidato dal database: frecce che scompaiono
-
11-07-2019 - |
Domanda
In Flex sto usando il seguente codice per consentire l'ordinamento in un DataGrid (i dati sono paginati e ordinati sul lato server).
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(); }
Funziona perfettamente, tranne per il fatto che le frecce che indicano l'ordinamento non sono mostrate. Come posso farlo?
Grazie! / Niels
Soluzione
C'è un esempio qui se questo è quello che stai cercando: http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click- una colonna /
Sembra che tu debba aggiornare la raccolta utilizzata dal tuo provider di dati.
Altri suggerimenti
Ho riscontrato lo stesso problema e l'unica soluzione che ho trovato è stata quella di sostituire DataGrid e crearne uno personalizzato. Ecco la 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();
}
}
Devi chiamare specificamente il metodo placeSortArrow () quando ottieni l'evento HEADER_RELEASE e imposti l'indice di colonna e le informazioni sulla direzione.
nel codice precedente cosa significa "questo" mi riferisco al datagrid perché sono confuso da this.query.SortField, presumo che 'this' e " query 'siano i tuoi oggetti personalizzati. e perché stai controllando il conteggio. che conta è quello.
Saluti -Mohan