Flex: Sortieren — Schreiben einer benutzerdefinierten compareFunction?

OK, ich bin die Sortierung ein XMLListCollection-in alphabetischer Reihenfolge. Ich habe ein Problem, though. Wenn der Wert "ALLE" ich möchte, dass es zuerst in der Liste. In den meisten Fällen geschieht dies bereits, aber die Werte, die zahlen werden sortiert, bevor Sie "ALLE". Ich möchte, dass "ALLE" immer die erste Auswahl in meinem dataProvider und dann der rest alphabetisch.

So, ich bin versucht, zu schreiben, meine eigenen Funktion Sortieren. Gibt es eine Möglichkeit, die ich überprüfen kann, ob einer der Werte ist alle, und wenn nicht sagen Sie es zu tun, das regelmäßige vergleichen der Werte?

Hier ist was ich habe:

function myCompare(a:Object, b:Object, fields:Array = null):int
{
    if(String(a).toLowerCase() == 'all')
    {
        return -1;
    }
    else 
        if(String(b).toLowerCase() == 'all')
        {
            return 1;
        }
    //NEED to return default comparison results here?
}

//------------------------------

var sort:Sort = new Sort();
sort.compareFunction = myCompare;

Gibt es eine Lösung für das, was ich versuche zu tun?

  • Was ist, wenn beide sind 'alle'?
  • Ich würde gerne sagen, dass würde nie passieren. Aber ja, ich weiß, dass ist nie der Fall, lol. Ich will hinzufügen, eine weitere if-Anweisung, bevor die hand, um zu überprüfen, Sie sind die gleichen und die Rückgabe 0 ist true. Danke.
InformationsquelleAutor JD Isaacks | 2009-09-02
Schreibe einen Kommentar