Vous pouvez utiliser un objet
import mx.collections.ItemResponder; //... try { //... cursor.moveNext(); } catch(e:ItemPendingError) { e.addResponder(new ItemResponder(myResultFunction, myFaultFunction, {info:"..."})); }
La méthode result spécifiée doit présenter la signature suivante :
public function myResultFunction(result:Object, token:Object = null):void;
La méthode fault spécifiée doit présenter la signature suivante :
public function myFaultFunction(error:Object, token:Object = null):void;
Toute autre signature provoquera une erreur d’exécution.
public function (result:Object, token:Object = null):void;
public function (error:ErrorMessage, token:Object = null):void;
<mx:Sort>
tag has the following attributes:
<mx:Sort Properties compareFunction="Internal compare function" fields="null" unique="false | true" />
In case items have inconsistent data types or items have complex data types, the use of the default built-in compare functions is not recommended. Inconsistent sorting results may occur in such cases. To avoid such problem, provide a custom compare function and/or make the item types consistent.
Just like any other AdvancedStyleClient
-based classes,
the Sort
and SortField
classes do not have a
parent-child relationship in terms of event handling. Locale changes in a
Sort
instance are not dispatched to its SortField
instances automatically. The only exceptional case is the internal default
SortField
instance used when no explicit fields are provided.
In this case, the internal default SortField
instance follows
the locale style that the owner Sort
instance has.
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:Sort = new Sort(); // Set the sort field; sort on the last name first, first name second. // Both fields are case-insensitive. sort.fields = [new SortField("last",true), new SortField("first",true)]; // Assign the Sort object to the view. col.sort = sort; // Apply the sort to the collection. col.refresh();
Dans certaines situations, la collection contient des éléments simples de type
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. sort.fields = [new SortField(null, true)]; col.sort = sort; col.refresh();
Les implémentations Flex de l’interface ICollectionView extraient tous les éléments d’un emplacement distant avant de procéder au tri. Si vous utilisez la pagination avec une liste triée, appliquez le tri à la collection distante avant d’extraire les données.
Par défaut, cette classe de tri ne permet pas d’effectuer correctement un tri spécifique par langue des chaînes de caractères. Pour ce type de tri, reportez-vous aux classes
Crée un nouvel objet Sort dont aucun champ n’est défini et qui ne contient aucun comparateur personnalisé.
Remarque : une interface
Les implémentations Flex de l’interface
La fonction de comparaison doit présenter la signature suivante :
function [name](a:Object, b:Object, fields:Array = null):int
Cette fonction doit retourner les valeurs suivantes : value:
Pour renvoyer à la fonction de comparaison interne, définissez cette valeur sur
Le tableau
function myCompare(a:Object, b:Object, fields:Array = null):int { var result:int = 0; var i:int = 0; var propList:Array = fields ? fields : internalPropList; var len:int = propList.length; var propName:String; while (result == 0 && (i < len)) { propName = propList[i]; result = compareValues(a[propName], b[propName]); i++; } return result; } function compareValues(a:Object, b:Object):int { if (a == null && b == null) return 0; if (a == null) return 1; if (b == null) return -1; if (a < b) return -1; if (a > b) return 1; return 0; }
La valeur par défaut est une fonction de comparaison interne qui réalise une comparaison de chaîne, de nombre ou de date dans l’ordre croissant ou décroissant. Spécifiez votre propre fonction uniquement si vous souhaitez disposer d’un algorithme de comparaison personnalisé. Normalement, cela est nécessaire uniquement lorsqu’un champ calculé est utilisé dans un affichage.
Vous pouvez également spécifier des fonctions de comparaison séparées pour chaque champ de tri, en utilisant la propriété
Remarque : une interface
La fonction de comparaison doit présenter la signature suivante :
Cette fonction renvoie les valeurs suivantes :
La valeur par défaut est
Cette propriété est utilisée par la classe
Si la valeur de cette propriété est
Si la valeur de cette propriété est
Si la valeur de cette propriété est
<mx:ArrayList Properties source="null" />
<mx:SortField>
tag has the following attributes:
<mx:SortField Properties caseInsensitive="false" compareFunction="Internal compare function" descending="false" name="null" numeric="null" />]]>
Dans certaines situations, la collection contient des éléments simples de typevar col:ICollectionView = new ArrayCollection(); col.addItem({first:"Anders", last:"Dickerson"}); var sort:Sort = new Sort(); sort.fields = [new SortField("first", true)]; col.sort = sort;
var col:ICollectionView = new ArrayCollection(); col.addItem("California"); col.addItem("Arizona"); var sort:Sort = new Sort(); sort.fields = [new SortField(null, true)]; col.sort = sort;
Par défaut, la comparaison fournie par la classe SortField ne permet pas d’effectuer correctement un tri spécifique par langue des chaînes de caractères. Pour ce type de tri, reportez-vous aux classes
Remarque : une interface
La fonction de comparaison doit présenter la signature suivante :
Cette fonction doit retourner les valeurs suivantes :
La valeur par défaut est une fonction de comparaison interne qui réalise une comparaison de chaîne, de nombre ou de date dans l’ordre croissant ou décroissant, en prenant ou non en compte la casse des chaînes. Spécifiez votre propre fonction uniquement si vous souhaitez disposer d’un algorithme de comparaison personnalisé. Normalement, cela est nécessaire uniquement lorsqu’un champ calculé est utilisé dans un affichage.
Remarque : si vous avez besoin d’effectuer un tri spécifique par langue, utilisez la classeLa valeur par défaut est
Cette propriété est utilisée par la classe
Si la valeur de cette propriété est
Si la valeur de cette propriété est
Si la valeur de cette propriété est
<mx:AsyncListView>
tag inherits all the attributes of its
superclass, and adds the following attributes:
<mx:AsyncListView Properties createFailedItemFunction="null" createPendingItemFunction="null" list="null" />]]>
La méthode
Cette classe délègue les méthodes et les propriétés IList à sa
Cette classe est conçue pour être utilisée avec les composants Spark basés sur la classe DataGroup, tels que List et ComboBox. Les classes Spark ne fournissent pas de prise en charge intrinsèque de la gestion des erreurs ItemPendingError.
AsyncListView ne prend pas en charge la réinsertion d’éléments qui sont en attente ou qui ont échoué. Dès qu’un élément qui a échoué ou qui est en attente est supprimé, sa connexion à une demande en attente de données est perdue. L’utilisation de Glisser-déposer pour déplacer un élément en attente dans une ASyncListView ou le tri d’une ASyncListView contenant des éléments qui sont en attente ou qui ont échoué n’est pas pris en charge car ces opérations suppriment puis réinsèrent des éléments de liste.
Cette méthode intercepte les erreurs ItemPendingErrors (IPE) générées suite à l’appel de la méthode
Remarque : contrairement aux méthodes
Si un élément n’est pas local et qu’une opération asynchrone doit être réalisée, une erreur
Pour plus d’informations sur l’utilisation de la classe
En l’absence d’élément actuel ou en attente à l’index spécifié, par exemple si un appel de la méthode
La valeur de cette propriété doit être une fonction à deux paramètres, l’index de l’élément demandé et l’objet « info » d’échec, qui est transmis à partir de la méthode IResponder
function createFailedItem(index:int, info:Object):Object { return "[" + index + "request failed]"; }
La définition de cette propriété n’affecte pas les éléments en échec qui ont déjà été créés. La définition de cette propriété sur null empêche la création des éléments en échec.
La valeur de cette propriété doit être une fonction à deux paramètres, l’index de l’élément de fournisseur de données demandé et ItemPendingError. Dans la plupart des cas, le second paramètre peut être ignoré. L’exemple suivant illustre une implémentation de la fonction de rappel :
function createPendingItem(index:int, ipe:ItemPendingError):Object { return "[" + index + "request is pending...]"; }
La définition de cette propriété n’affecte pas les éléments en attente provisoires qui ont déjà été créés. La définition de cette propriété sur null empêche la création d’éléments en attente provisoires.
Si cette propriété est null, les méthodes de mutation IList, telles que
<mx:ArrayCollection>
tag inherits all the attributes of its
superclass, and adds the following attributes:
<mx:ArrayCollection Properties source="null" />]]>
var myCollection:ArrayCollection = new ArrayCollection([ { first: 'Matt', last: 'Matthews' } ]); var myCursor:IViewCursor = myCollection.createCursor(); var firstItem:Object = myCollection.getItemAt(0); var firstItemFromCursor:Object = myCursor.current; if (firstItem == firstItemFromCursor) doCelebration();
Crée une nouvelle occurrence ArrayCollection à l’aide du tableau source spécifié. Si aucun tableau n’est spécifié, un tableau vide est utilisé.
Remarque : une interface
Les implémentations Flex de l’interface
La fonction de comparaison doit présenter la signature suivante :
function [name](a:Object, b:Object, fields:Array = null):int
Cette fonction doit retourner les valeurs suivantes : value:
Pour renvoyer à la fonction de comparaison interne, définissez cette valeur sur
Le tableau
function myCompare(a:Object, b:Object, fields:Array = null):int { var result:int = 0; var i:int = 0; var propList:Array = fields ? fields : internalPropList; var len:int = propList.length; var propName:String; while (result == 0 && (i < len)) { propName = propList[i]; result = compareValues(a[propName], b[propName]); i++; } return result; } function compareValues(a:Object, b:Object):int { if (a == null && b == null) return 0; if (a == null) return 1; if (b == null) return -1; if (a < b) return -1; if (a > b) return 1; return 0; }
La valeur par défaut est une fonction de comparaison interne qui réalise une comparaison de chaîne, de nombre ou de date dans l’ordre croissant ou décroissant. Spécifiez votre propre fonction uniquement si vous souhaitez disposer d’un algorithme de comparaison personnalisé. Normalement, cela est nécessaire uniquement lorsqu’un champ calculé est utilisé dans un affichage.
Vous pouvez également spécifier des fonctions de comparaison séparées pour chaque champ de tri, en utilisant la propriété
<mx:XMLListCollection>
tag inherits all
the attributes of its superclass, and adds the following attributes:
<mx:XMLListCollection Properties source="null" />]]>
Crée un nouvel objet XMLListCollection à partir de l’objet XMLList spécifié.
Pour les objets XML dont le contenu est simple, la méthode
Pour les objets XML dont le contenu est simple, la méthode
Une interface
L’interface
Remarque : contrairement aux méthodes
Si un élément n’est pas local et qu’une opération asynchrone doit être réalisée, une erreur
Pour plus d’informations sur l’utilisation de la classe
<mx:ListCollectionView>
has the following attributes,
which all of its subclasses inherit:
<mx:ListCollectionView Properties filterFunction="null" list="null" sort="null" Events collectionChange="No default" />]]>
Cette classe permet également d’utiliser la notation de tableau [ ] pour accéder aux méthodes
Remarque : contrairement aux méthodes
Renvoie
f(item:Object):BooleanOù la valeur de retour est
Si un filtre n’est pas pris en charge, Flex renvoie une erreur lors de l’accès à cette propriété. Pour que la vue soit mise à jour, vous devez appeler la méthode
Remarque : les implémentations Flex de l’interface ICollectionView extraient tous les éléments d’un emplacement distant avant d’exécuter la fonction de filtrage. Si vous utilisez la pagination, appliquez le filtre à la collection distante avant d’extraire les données.
Remarque : les implémentations Flex de l’interface ICollectionView extraient tous les éléments d’un emplacement distant avant de procéder au tri. Si vous utilisez la pagination avec une liste triée, appliquez le tri à la collection distante avant d’extraire les données.
Une interface
L’interface
Renvoie
f(item:Object):BooleanOù la valeur de retour est
Si un filtre n’est pas pris en charge, Flex renvoie une erreur lors de l’accès à cette propriété. Pour que la vue soit mise à jour, vous devez appeler la méthode
Remarque : les implémentations Flex de l’interface ICollectionView extraient tous les éléments d’un emplacement distant avant d’exécuter la fonction de filtrage. Si vous utilisez la pagination, appliquez le filtre à la collection distante avant d’extraire les données.
Remarque : les implémentations Flex de l’interface ICollectionView extraient tous les éléments d’un emplacement distant avant de procéder au tri. Si vous utilisez la pagination avec une liste triée, appliquez le tri à la collection distante avant d’extraire les données.
La méthode
Si la collection associée est distante et que tous les éléments n’ont pas été mis en cache localement, cette méthode procède à une récupération asynchrone à partir de la collection distante. Si une demande de récupération est déjà en cours, cette méthode attend qu’elle soit terminée avant de procéder à une nouvelle demande de récupération.
Si plusieurs éléments correspondent aux critères de recherche, l’élément retrouvé est non déterministe. S’il s’avère indispensable de retrouver la première ou la dernière occurrence d’un élément dans un index non unique, utilisez la méthode
Si les données ne sont pas locales et qu’une opération asynchrone doit être réalisée, une erreur ItemPendingError est renvoyée.
La méthode
Si la collection associée est distante et que tous les éléments n’ont pas été mis en cache localement, cette méthode procède à une récupération asynchrone à partir de la collection distante. Si une demande de récupération est déjà en cours, cette méthode attend qu’elle soit terminée avant de procéder à une nouvelle demande de récupération.
S’il n’est pas nécessaire de retrouver la première occurrence d’un élément dans un index non unique, utilisez la méthode
Si les données ne sont pas locales et qu’une opération asynchrone doit être réalisée, une erreur ItemPendingError est renvoyée.
La méthode
Si la collection associée est distante et que tous les éléments n’ont pas été mis en cache localement, cette méthode procède à une récupération asynchrone à partir de la collection distante. Si une demande de récupération est déjà en cours, cette méthode attend qu’elle soit terminée avant de procéder à une nouvelle demande de récupération.
S’il n’est pas indispensable de retrouver la dernière occurrence d’un élément dans un index non unique, utilisez la méthode
Si les données ne sont pas locales et qu’une opération asynchrone doit être réalisée, une erreur ItemPendingError est renvoyée.
Si les données ne sont pas locales et qu’une opération asynchrone doit être réalisée, une erreur ItemPendingError est renvoyée. Pour plus d’informations sur l’utilisation de la classe ItemPendingError, voir la documentation relative à ItemPendingError et aux collections.
var myArrayCollection:ICollectionView = new ArrayCollection([ "Bobby", "Mark", "Trevor", "Jacey", "Tyler" ]); var cursor:IViewCursor = myArrayCollection.createCursor(); while (!cursor.afterLast) { trace(cursor.current); cursor.moveNext(); }
var myArrayCollection:ICollectionView = new ArrayCollection([ "Bobby", "Mark", "Trevor", "Jacey", "Tyler" ]); var cursor:IViewCursor = myArrayCollection.createCursor(); cursor.seek(CursorBookmark.last); while (!cursor.beforeFirst) { trace(current); cursor.movePrevious(); }
Si les données ne sont pas locales et qu’une opération asynchrone doit être réalisée, une erreur ItemPendingError est renvoyée. Pour plus d’informations sur l’utilisation de la classe ItemPendingError, voir la documentation relative à ItemPendingError et aux collections.
Si après la suppression de l’élément, l’élément n’est pas local et qu’une opération asynchrone doit être réalisée, une erreur ItemPendingError est renvoyée. Pour plus d’informations sur l’utilisation de la classe ItemPendingError, voir la documentation relative à ItemPendingError et aux collections.
Si la collection associée est distante et que tous les éléments n’ont pas été mis en cache localement, cette méthode procède à une récupération asynchrone à partir de la collection distante.
Si les données ne sont pas locales et qu’une opération asynchrone doit être réalisée, une erreur ItemPendingError est renvoyée. Pour plus d’informations sur l’utilisation de la classe ItemPendingError, voir la documentation relative à ItemPendingError et aux collections.