OK, ich sortiere eine XMLListCollection in alphabetischer Reihenfolge. Ich habe jedoch ein Problem. Wenn der Wert "ALL" ist, möchte ich, dass er in der Liste zuerst steht. In den meisten Fällen geschieht dies bereits, aber Werte, die Zahlen sind, werden vor "ALL" sortiert. Ich möchte "ALL" immer die erste Auswahl in meinem DataProvider sein und dann den Rest alphabetisch.Flex: Sort - Eine benutzerdefinierte compareFunction schreiben?
Also versuche ich meine eigene Sortierfunktion zu schreiben. Gibt es eine Möglichkeit, dass ich überprüfen kann, ob einer der Werte alle ist, und wenn nicht, sage ihm, den regulären Vergleich der Werte zu machen?
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 tun möchte?
Was ist, wenn beide "alle" sind? –
Ich würde gerne sagen, dass das nie passieren würde. Aber ja ich weiß das ist nie der Fall lol. Ich werde eine weitere if-Anweisung vor der Hand hinzufügen, um zu überprüfen, ob sie identisch sind, und return 0 ist wahr. Vielen Dank. –