Salut tout le monde,
Existe-t-il un moyen pour tester l'égalité de deux lignes d'un dataGrid?
Merci d'avance.
Salut tout le monde,
Existe-t-il un moyen pour tester l'égalité de deux lignes d'un dataGrid?
Merci d'avance.
Euh ... implémenter une méthode equals sur les objets de cette datagrid et les comparer entre eux tout simplement ?
Sinon je ne pense malheureusement pas qu'il puisse y avoir de magie...
tu peux pas tester plutôt dans le provider de ton Datagrid, se serait beaucoup plus simple...
Evidemment quand je parle des objets de la datagrid, je parle des objets contenus dans le dataprovider (et affichés dans la datagrid).
Merci pour vos réponses,
En fait mon but final est de remplir mon dataGrid à partir de certains champs de texte.
Pour optimiser le remplissage il ne faut pas insérer une ligne qui existe déjà.
J'ai essayé cette fonction mais ça ne marche pas comme je veux:
sachant bien que collection ici désigne un tableau que je rempli avec les valeurs des champs de texte comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public function verifierExistenceLigneDataGrid(dataGrid:DataGrid,collection:ArrayCollection):Boolean{ var trouve:Boolean=false var i:Number=0 while (i<dataGrid.dataProvider.length && (!trouve)) { if (dataGrid.dataProvider[i]==collection[0]){ trouve=true } i++; } return trouve; }
je vous remercie encore de vos suggestions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var collection:ArrayCollection = new ArrayCollection(); collection.addItem({col1: txt1.text, col2: txt2.text, col3: txt3.text})
Ta ligne
retourne false je pense et donc ton code ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dataGrid.dataProvider[i]==collection[0]
Comparer deux objets complexes entre eux ne se fait pas tout seul.
Tiens, essaie ça en debug, click sur le bouton et regarde la console. Ça devrait te mettre sur la piste.
Par ailleurs, pourquoi utiliser une ArrayCollection juste pour y mettre un seul élément si j'ai bien compris (ton tableau de valeur) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*"> <mx:Script> <![CDATA[ private function test(event:Event=null):void{ trace(obj1 == obj2); // FALSE ! trace((obj1['attr1'] == obj2['attr1']) && obj1['attr2'] == obj2['attr2']); // TRUE ! } ]]> </mx:Script> <mx:Object id="obj1"> <mx:attr1>1234</mx:attr1> <mx:attr2>coucou</mx:attr2> </mx:Object> <mx:Object id="obj2"> <mx:attr1>1234</mx:attr1> <mx:attr2>coucou</mx:attr2> </mx:Object> <mx:Button label="test" click="test()"/> </mx:Application>
Partager