IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Tester l'égalité de deux lignes d'un dataGrid


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Par défaut Tester l'égalité de deux lignes d'un dataGrid
    Salut tout le monde,

    Existe-t-il un moyen pour tester l'égalité de deux lignes d'un dataGrid?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Par défaut
    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...

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 147
    Par défaut
    tu peux pas tester plutôt dans le provider de ton Datagrid, se serait beaucoup plus simple...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Par défaut
    Evidemment quand je parle des objets de la datagrid, je parle des objets contenus dans le dataprovider (et affichés dans la datagrid).

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Par défaut
    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:
    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;
    }
    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
    var collection:ArrayCollection = new ArrayCollection();
    collection.addItem({col1: txt1.text, col2: txt2.text, col3: txt3.text})
    je vous remercie encore de vos suggestions

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Par défaut
    Ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dataGrid.dataProvider[i]==collection[0]
    retourne false je pense et donc ton code ne marche pas.
    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.

    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>
    Par ailleurs, pourquoi utiliser une ArrayCollection juste pour y mettre un seul élément si j'ai bien compris (ton tableau de valeur) ?

Discussions similaires

  1. Tester l'égalité de deux objets Range
    Par ANOVA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/06/2010, 15h11
  2. Syntaxe pour égalité entre deux lignes : var(i)=var(i+1)
    Par NemoParis dans le forum Débutez
    Réponses: 2
    Dernier message: 28/05/2010, 09h55
  3. [AJAX] Tester l'égalité entre deux variable
    Par DeeVoiD dans le forum AJAX
    Réponses: 6
    Dernier message: 14/04/2009, 14h07
  4. tester l'equivalence de deux lignes dans deux feuilles differentes
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/12/2008, 11h55
  5. Réponses: 6
    Dernier message: 19/01/2008, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo