Bonjour,
Pour gérer une liste d'utilisateur, je souhaiterai modifier a la volée le "currentState" d'un élément de cette liste, j'ai testé 2 approches différentes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <s:List itemRenderer="userList" id="listUsers" dataProvider="{Users}" click="userClicked()" skinClass="skin.userList" focusEnabled="false"/>
(fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part List(listUsers.getChildAt(i)).currentState = 'hover';)
et l'édition du dataprovider, cette solution marche, mais je la trouve vraiment pas propre :
Puis dans l'itemRenderer je check si hover=true pour adapter le CurrentState.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 for(var i=0;i<Users.length;i++) { if (Users[i].id == myId) { //List(listUsers.getChildAt(i)).currentState = 'hover'; var tmp:Object = Users[i]; // Copie.. :s tmp.hover = true; Users[i] = tmp; // Màj forcé .. de tout les éléments break; } }
A noter que : Users (mon dataprovider) est un ArrayCollection d'objet, donc non directement Bindable non ? (où alors j'ai raté un chapitre :$)
De façon générale il faudrait que je trouve une méthode d’accès aux éléments crée par mon itemRenderer. Est-ce que quelqu'un aurait la solution ?
Bon appétit![]()
Partager