Frage

In Flex Ich bin mit dem folgenden Code in einem Datagrid zu ermöglichen Sortierung (die Daten ausgelagert werden und sortierten 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();
        }

Das funktioniert perfekt, mit der Ausnahme, dass die Pfeile, die Sortierung angeben, ist nicht gezeigt. Wie kann ich erreichen, dass?

Danke! / Niels

War es hilfreich?

Lösung

Es ist ein Beispiel hier, wenn dies ist, was Sie suchen: http://blog.flexexamples.com/2008/02/28/displaying-the-sort-arrow-in-a-flex-datagrid-control-without-having-to-click- a-Spalte /

Es sieht aus wie Sie die Sammlung von Ihrem Dataprovider verwendet auffrischen müssen.

Andere Tipps

Ich habe das gleiche Problem und die einzige Lösung gestoßen war ich fand das Datagrid außer Kraft zu setzen und ein eigenen erstellen. Hier ist die Klasse:

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();
    }

}

Sie müssen speziell die placeSortArrow () -Methode aufrufen, wenn Sie die HEADER_RELEASE Veranstaltung erhalten und den Spaltenindex und Richtungsinformationen eingestellt.

in dem obigen Code, was bedeutet „das“ bezieht sich auf ist es das Datagrid, weil ich von this.query.SortField verwirrt bin, gehe ich davon aus ‚this‘ und „Abfrage‘ sind Ihre eigenen Objekte. Und warum die Überprüfung Sie Zähl-. was zählt, das ist.

Viele Grüße -Mohan

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top