Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

31oct/087

Flex UIComponent – Assigner un dataProvider à un Composant Flex en MXML et AS3

Vous pouvez utiliser n'importe quel type de collection (tant qu'il implémente ICollectionView) avec n'importe quel composant de type liste, ce qui permet d'avoir différentes structures de données. Tous ce que vous avez à faire, est de fixer la propriété dataProvider du composant à la collection.
Par exemple, le code suivant utilise un ArrayCollection pour peupler une liste (mx:List);

import mx.collections.ArrayCollection;
var collection:ArrayCollection = new ArrayCollection(["a", "b", "c", "d"]);
list.dataProvider = collection;

D'un autre côté, si la donnée est au format XML, vous pouvez facilement utiliser une XMLListCollection à la place:

import mx.collections.XMLListCollection;
public var xmlList:XMLList = XMLList("<item>a</item><item>b</item><item>c</item><item>d</item>");
public var collection:XMLListCollection = new XMLListCollection(xmlList);
list.dataProvider = collection;

Si vous utilisez du MXML pour assigner le data provider, vous pouvez simplement insérer la collection à l'intérieur du tag correspondant au composant liste. L'exemple suivant assigne un ArrayCollection au dataProvider d'une List:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:List id="list" width="100">
		<mx:ArrayCollection>
			<mx:Array>
				<mx:String>a</mx:String>
				<mx:String>b</mx:String>
				<mx:String>c</mx:String>
				<mx:String>d</mx:String>
			</mx:Array>
		</mx:ArrayCollection>
	</mx:List>
</mx:Application>

Articles similaires

Commentaires (7) Trackbacks (0)
  1. Bonjour,

    Je débute dans flex mais pas dans la programmation, j'utilise flash builder 4 depuis un éclipse que j'utilise depuis quelques temps.
    Alors que je me lance dans la création de listes, je suis confronté à une erreur :

    MXML:

    Une simple copie de ton dernière exemple, mais j'ai la petite croix rouge devant mx:array
    le message d'erreur est : Impossible de résoudre en une implémentation de composant.

    Merci d'avance.

    Cordialement Laurent

  2. Salut Laurent,
    Ton projet doit etre un projet flex 4, et array n'est plus précédé de mx mais de fx. Ou alors il faut que tu aie le nouveau namespace en place dans le tag principal. Essaie d'ouvrir un tag xml et de taper Array. L'auto completion fera toutes les adaptations necessaires.

    Fabien

  3. Bonsoir
    Merci pour la rapidité de ta réponse et effectivement en changent les mx par fx l'erreur est partie.
    Et continue comme ça ton Site est vraiment excellent.
    Sinon tu aurais quelques informations sur le fonctionnement futur de flex avec l'outil décisionnel SAS ?
    Merci encore et bonne soirée

    Cordialement Laurent

  4. Salut
    Dsl je n'ai pas plus d'informations mais je sais que certaines solutions existent deja. Bonne course a l'info
    Fabien

  5. Salut

    Excellent tuto ,et merci a l'avance pour l'effort.

    j'avais le même problème que Laurent. l'erreur est partie ,mais rien ne s'affiche dans les colonnes !

    je suis sur Flex Builder 4

    si quelqu'un peut m'aider svp

  6. Salut Ahmed,
    Voici le code pour Flex 4 (testé):

    MXML:
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
    3.                xmlns:s="library://ns.adobe.com/flex/spark"
    4.                xmlns:mx="library://ns.adobe.com/flex/mx">
    5.   <s:List>
    6.     <s:ArrayCollection>
    7.       <fx:Array>
    8.         <fx:String>A</fx:String>
    9.         <fx:String>B</fx:String>
    10.         <fx:String>C</fx:String>
    11.         <fx:String>D</fx:String>
    12.       </fx:Array>
    13.     </s:ArrayCollection>
    14.   </s:List>
    15. </s:Application>

    Fabien

  7. merci bien

    ça marche


Leave a comment

(required)

Aucun trackbacks pour l'instant