spark.collectionsSort Stellt die Sortierinformationen bereit, die erforderlich sind, um eine Sortierung für eine vorhandene Ansicht durchzuführen (ICollectionView-Schnittstelle oder Klasse, die die Schnittstelle implementiert).The <s:Sort> tag has the following attributes:

  <s:Sort
  Properties
  compareFunction="Internal compare function"
  fields="null"
  unique="false | true"
  />
  

In case items have inconsistent data types or items have complex data types, use of default built-in compare functions is not desired. Inconsistent sort result may occur in such cases. To avoid such problem, provide custom compare function and/or make item types consistent.

]]>
mx.collections:ISortmx.styles:AdvancedStyleClient Stellt die Sortierinformationen bereit, die erforderlich sind, um eine Sortierung für eine vorhandene Ansicht durchzuführen (ICollectionView-Schnittstelle oder Klasse, die die Schnittstelle implementiert). Nachdem Sie der sort-Eigenschaft der Ansicht eine Sort-Instanz zugewiesen haben, müssen Sie die refresh()-Methode der Ansicht aufrufen, um die Sortierkriterien anzuwenden.

Normalerweise wird die Sortierung für Sammlungen komplexer Elemente definiert, also für Sammlungen, in denen die Sortierung einer oder mehrerer Eigenschaften der Objekte in der Sammlung durchgeführt wird. Das folgende Beispiel veranschaulicht diese Verwendung:


     var col:ICollectionView = new ArrayCollection();
     // In the real world, the collection would have more than one item.
     col.addItem({first:"Anders", last:"Dickerson"});
 
     // Create the Sort instance.
     var sort:ISort = new Sort();
 
     // Set the sort field; sort on the last name first, first name second.
     var sortfieldLastName:ISortField = new SortField("last",true);
     var sortfieldFirstName:ISortField = new SortField("first",true);
 
     // Set the locale style to "en-US" to cause the strings
     // to be ordered according to the rules for English as used in the USA.
     sortfieldLastName.setStyle("locale","en-US");
     sortfieldFirstName.setStyle("locale","en-US");
     sort.fields = [sortfieldLastName, sortfieldFirstName];
 
     // Assign the Sort object to the view.
     col.sort = sort;
 
     // Apply the sort to the collection.
     col.refresh();
  

Es gibt Situationen, in denen die Sammlung einfache Elemente enthält, wie String, Date, Boolean usw. In diesem Fall wird die Sortierung direkt auf den einfachen Typ angewendet. Bei der Erstellung einer Sortierung für einfache Elemente verwenden Sie ein einzelnes Sortierfeld und geben im SortField-Objektkonstruktor einen (ersten) Parameter null name an. Beispiel:


     import mx.collections.ArrayCollection;
     import spark.collections.Sort;
     import spark.collections.SortField;
 
     var col:ICollectionView = new ArrayCollection();
     col.addItem("California");
     col.addItem("Arizona");
     var sort:Sort = new Sort();
 
     // There is only one sort field, so use a null 
     // first parameter. 
     var sortfield:SortField = new SortField("null",true);
 
     // Set the locale style to "en-US" to set the language for the sort.
     sortfield.setStyle("locale","en-US");
     sort.fields = [sortfield];
     col.sort = sort;
     col.refresh();
  

Die Flex-Implementierungen der ICollectionView-Schnittstelle rufen alle Elemente von einer Remote-Position ab, bevor eine Sortierung durchgeführt wird. Wenn Sie bei einer sortierten Liste Paging verwenden, wenden Sie die Sortierung auf die Remote-Sammlung an, bevor Sie die Daten abrufen.

Der von der SortField-Klasse bereitgestellte Standardvergleich stellt eine korrekte sprachspezifische Sortierung für Strings bereit. Die Sprache wird durch Einstellen des Gebietsschemastils auf einer Instanz der Klasse auf eine der folgenden Arten ausgewählt:

  • Durch Verwenden der Klasse in einer MXML-Deklaration und Übernehmen des Gebietsschemas aus dem Dokument, das die Deklaration enthält.
  • Beispiel:
      <fx:Declarations> 
             <s:SortField id="sf" /> 
      </fx:Declarations>
      
  • Durch Verwenden einer MXML-Deklaration und Festlegen des Gebietsschemawerts in der Liste mit Zuweisungen.
  • Beispiel:
      <fx:Declarations> 
          <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" /> 
      </fx:Declarations>
      
  • setStyle-Methode, z. B. f.setStyle("locale", "zh-Hans-CN") aufrufen
  • Übernehmen des Stils aus einer UIComponent durch Aufruf der addStyleClient()-Methode der UIComponent.
mx.collections.ICollectionViewspark.collections.SortFieldSort Konstruktor. Konstruktor.

Erstellt eine neue Sort-Instanz ohne eingerichtete Felder und benutzerdefinierten Komparator.

findItem itemsvaluesmodereturnInsertionIndexfalsecompareFunctionnull propertyAffectsSort property reverse sort items ANY_INDEX_MODE Bei der Ausführung einer Suche den Index für alle übereinstimmenden Elemente zurückgeben.any Bei der Ausführung einer Suche den Index für alle übereinstimmenden Elemente zurückgeben. FIRST_INDEX_MODE Bei der Ausführung einer Suche den Index für das erste übereinstimmende Element zurückgeben.first Bei der Ausführung einer Suche den Index für das erste übereinstimmende Element zurückgeben. LAST_INDEX_MODE Bei der Ausführung eines Suche den Index für das letzte übereinstimmende Element zurückgeben.last Bei der Ausführung eines Suche den Index für das letzte übereinstimmende Element zurückgeben. compareFunction fields null SortFieldunique false
NumericDataProvider Diese IList-Klasse generiert Elemente aus einer sequenziellen Reihe von Zahlen.mx.collections:IListmx.utils:OnDemandEventDispatcher Diese IList-Klasse generiert Elemente aus einer sequenziellen Reihe von Zahlen. Der Zahlenbereich liegt zwischen den Werten der Eigenschaften minimum und maximum. In der Eigenschaft stepSize ist die Differenz zwischen zwei Elementen festgelegt.

 <s:SpinnerList>
   <s:dataProvider>
     <s:NumericDataProvider minimum="0" maximum="23" stepSize="1"/>
   </s:dataProvider>
 </s:SpinnerList> 
 

Der Vorteil dieser Klasse ist, dass die Elementwerte bei Bedarf berechnet anstatt gespeichert werden.

spark.components.SpinnerListmx.collections.IListNumericDataProvider Konstruktor. Konstruktor. addItemAt Diese Funktion wird nicht unterstützt..itemindex addItem item getItemAt indexprefetch0 getItemIndex item itemUpdated itempropertynulloldValuenullnewValuenull removeAll removeItemAt index setItemAt itemindex toArray length maximum Der Wert des letzten Elements.100 Der Wert des letzten Elements. Dieser Wert muss größer als der Mindestwert sein. minimum Der Wert des ersten Elements.0 Der Wert des ersten Elements. Dieser Wert muss kleiner als der Mindestwert sein. stepSize Die stepSize-Eigenschaft überwacht die Elementwerte zwischen dem ersten und letzten Element.1 Die stepSize-Eigenschaft überwacht die Elementwerte zwischen dem ersten und letzten Element. Bei jedem Element wird der Wert als Summe von minimum und dem Index des Elements multipliziert mit seiner Eigenschaft berechnet.

Beispiel: Wenn minimum 10, maximum 20 und die Eigenschaft 3 ist, sind die Elementwerte dieses Datenproviders 10, 13, 16, 19 und 20.

SortField Stellt die Sortierinformationen bereit, die erforderlich sind, um eine Sortierung eines Felds oder einer Eigenschaft in einer Sammlungsansicht durchzuführen.The <s:SortField> tag has the following attributes:

  <s:SortField
  Properties
  compareFunction="Internal compare function"
  descending="false"
  name="null"
  numeric="null"
  />
  
]]>
mx.collections:ISortFieldmx.styles:AdvancedStyleClient Stellt die Sortierinformationen bereit, die erforderlich sind, um eine Sortierung eines Felds oder einer Eigenschaft in einer Sammlungsansicht durchzuführen. Die SortField-Klasse wird mit der Sort-Klasse verwendet. Normalerweise wird die Sortierung für Sammlungen komplexer Elemente definiert, also für Elemente, in denen die Sortierung anhand von Eigenschaften dieser Objekte durchgeführt wird. Beispiel:

     var col:ICollectionView = new ArrayCollection();
     col.addItem({first:"Anders", last:"Dickerson"});
     var sort:Sort = new Sort();
     var sortfield:SortField = new SortField("first", true);
     sortfield.setStyle("locale", "en-US");
     sort.fields = [sortfield];
     col.sort = sort;
  
Es gibt Situationen, in denen die Sammlung einfache Elemente enthält, wie String, Date, Boolean usw. In diesem Fall wird die Sortierung direkt auf den einfachen Datentyp angewendet. Bei der Erstellung einer Sortierung für diese Situation ist nur ein einzelnes Sortierfeld erforderlich, für das name nicht angegeben sein sollte. Beispiel:

     var col:ICollectionView = new ArrayCollection();
     col.addItem("California");
     col.addItem("Arizona");
     var sort:Sort = new Sort();
     var sortfield:SortField = new SortField(null, true);
     sortfield.setStyle("locale", "en-US");
     sort.fields = [sortfield];
     col.sort = sort;
  

Der von der SortField-Klasse bereitgestellte Standardvergleich stellt eine korrekte sprachspezifische Sortierung für Strings bereit. Die Sprache wird durch Einstellen des Gebietsschemastils auf einer Instanz der Klasse auf eine der folgenden Arten ausgewählt:

  • Durch Verwenden der Klasse in einer MXML-Deklaration und Übernehmen des Gebietsschemas aus dem Dokument, das die Deklaration enthält.
  • Beispiel:
      <fx:Declarations> 
             <s:SortField id="sf" /> 
      </fx:Declarations>
      
  • Durch Verwenden einer MXML-Deklaration und Festlegen des Gebietsschemawerts in der Liste mit Zuweisungen.
  • Beispiel:
      <fx:Declarations> 
          <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" /> 
      </fx:Declarations>
      
  • setStyle-Methode, z. B. f.setStyle("locale", "zh-Hans-CN") aufrufen
  • Übernehmen des Stils aus einer UIComponent durch Aufruf der addStyleClient()-Methode der UIComponent.
mx.collections.ICollectionViewspark.collections.SortSortField Konstruktor.namenullDer Name der Eigenschaft, die dieses Feld für den Vergleich verwendet. Wenn das Objekt ein einfacher Typ ist, übergeben Sie null. descendingfalseWeist den Komparator an, ob Elemente in absteigender Reihenfolge angeordnet werden sollen. numericnullWeist den Komparator an, ob Sortierelemente als Zahlenwerte verglichen werden sollen, anstatt alphabetisch. Konstruktor. initializeDefaultCompareFunction obj reverse arraySortOnOptions compareFunction Die Funktion, die zwei Elemente bei der Sortierung von Elementen für die zugehörige Sammlung vergleicht. Die Funktion, die zwei Elemente bei der Sortierung von Elementen für die zugehörige Sammlung vergleicht. Wenn Sie eine compareFunction-Eigenschaft in einem ISort-Objekt angeben, ignoriert Flex alle compareFunction-Eigenschaften der SortField-Objekte der ISort.

Die Vergleichsfunktion muss folgende Signatur haben:

function myCompare(a:Object, b:Object):int

Diese Funktion muss folgende Werte zurückgeben:

  • -1, wenn das Object a vor dem Object b in der sortierten Sequenz erscheinen soll
  • 0, wenn Object a Object b entspricht
  • 1, wenn das Object a nach dem Object b in der sortierten Sequenz erscheinen soll

Der Standardwert ist eine interne Vergleichsfunktion, die einen Vergleich von Strings, numerischen Werten oder Datumsangaben in aufsteigender oder absteigender Reihenfolge durchführen kann. Der Stringvergleich wird mithilfe der gebietsschemaspezifischen (Sprache, Region und Skript) Vergleichsmethode aus der SortingCollator-Klasse ausgeführt. Diese Klasse verwendet den Gebietsschemastil, um ein Gebietsschema zu bestimmen. Geben Sie Ihre eigene Funktion nur an, wenn ein benutzerdefinierter Vergleichsalgorithmus erforderlich ist. Dies ist normalerweise nur der Fall, wenn ein berechnetes Feld in einer Anzeige verwendet wird.

descending name null numeric null usingCustomCompareFunction