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 :

Probleme pour remplir Datagrid


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2010
    Messages : 61
    Par défaut Probleme pour remplir Datagrid
    Bonjour,Bonjour,

    Aprés un come-back raté ce matin à cause d'une mauvaise manip..me revoilà...

    Donc aujourd'hui..Petit probleme au niveau d'un datagrid..
    Encore un fois, j'utilise des fichiers que je découpe et que j'instancie dans mon Dg...de plus, selon le résultat d'un test de correspondance, les cellules s'affichent rouge ou verte...
    Mais le probleme vient du fait que lorsque je rempli mes dg...ceux ci possedent des cases vides...donc j'aimerai savoir comment les résorber ou pallier à ce probleme...
    Je vous laisse voir le code :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:extension="extension.*" layout="absolute" applicationComplete="resultHandler()" initialize="map()">
     
    	<mx:Script>
    		<![CDATA[
     
    			import mx.collections.ArrayCollection;
    			import mx.controls.DataGrid;    
     
    		//raffraichis le datagrid et permet d'effacer la sélection précédente avant d'en afficher une nouvelle
     		   private function resultHandler():void
                {
    	         srv3.send();
    	         srv4.send();
    	         mydg1.dataProvider.removeAll();
    	         mydg2.dataProvider.removeAll();
      	        } 
     
    		//initialisation des choix des combobox	
    			[Bindable]
    			 var maps: ArrayCollection = new ArrayCollection;
    			 var maps2: ArrayCollection = new ArrayCollection(['expert/currency.map', 'expert/person.map', 'expert/webForm8.map','expert/book.map','expert/book-ann.map','expert/book-similar.map']);
     
    			  public function map():void
                 {
                    maps = new ArrayCollection(['test1.map']);
                 // maps2 = new ArrayCollection(['expert/currency.map', 'expert/person.map', 'expert/webForm8.map','expert/book.map','expert/book-ann.map','expert/book-similar.map']);
                 }    
    	//////////////////////////////////		
     
     
    //comparaison des différents fichiers et remplissage des dg
     
    		    private var value:String;
    			private var myArr:ArrayCollection = new ArrayCollection(); 	
    			private var myArr2:ArrayCollection = new ArrayCollection(); 	
    			private var testdg:String = "True";
    			public function comparaison():void
    			{
     
    			var test1:String = String(srv3.lastResult);
    			var test2:String = String(srv4.lastResult) ; 
     
    //////////////////////////////////////////////////////////////////////////////////
    //on peut remplacer les deux lignes précédentes par :
    /*      var test1:String = "Personne_00.xsd/person;Personne_01.xsd/person;";
             var test2:String = "Personne_00.xsd/pers;Personne_01.xsd/person;";
    */
    /////////////////////////////////////////////////////////////////////////////////
     
    			var re:RegExp = /\n|;|=/;
     
                var result1:Array = test1.split(re);
                var result2:Array = test2.split(re);
                 var x:int=0;
    	 var y:int=0;
     
    			 trace(result1);
     
                for (var i:int=0; i<result1.length-1; i++)
                {   
                      if(result1[i] == result2[i])
                     {
    	              value="True"
                     }
                      else{ value = "False";}
     
                    var newObj:Object = {} ;
                    var newObj2:Object = {} ;          
     
                   if(result1[i] !=null)
                   {
     
     
                    if (testdg =="True")
                    {
     
                       newObj["test"] = result1[i]; 
                       newObj["color"] = value; 
                       testdg ="False";
     
                    }
                    else 
                    {
     
                      newObj2["test"] = result1[i];
                      newObj2["color"] = value; 
                      testdg ="True";
     
                    }
                   }
                    myArr.addItem(newObj);
                    myArr2.addItem(newObj2); 
                 }
     
    	  }
     
    /////////////////////////////////	
    //application des couleurs
     
    			 private function selectSeverityColor1(datagrid:DataGrid, rowIndex:int, color:uint):uint
                 {
                    var rColor:uint;
                    var item:Object =  datagrid.dataProvider.getItemAt(rowIndex);
                    var value:String = item["color"];
                    if (value == "True") { rColor = 0x00FF00; }
                    else if (value == "False") { rColor = 0xFF0000; }
                    else rColor =color;
                    return rColor;
                 }
    ///////////////////////////
     
     
    					]]>
    	</mx:Script>
     
    	<!--Choix du fichier .map à afficher-->
    	   <mx:ComboBox dataProvider="{maps}" width="150" id="CB" change="resultHandler()"  x="560" y="10"/>
    	   <mx:HTTPService id="srv3" url="{CB.selectedItem}" result="comparaison()" resultFormat="e4x"/>
     
    <!--Choix du fichier .map à comparer-->
    		   <mx:HTTPService id="srv4" url="{CB2.selectedItem}" result="comparaison()" resultFormat="e4x"/>
    		   <mx:ComboBox dataProvider="{maps2}" width="150" id="CB2" change="resultHandler()"  x="373" y="10"/>
     
     
    <!--Premier dg-->
         <extension:RowColorDataGrid id="mydg1" width="50%" height="50%"  dataProvider="{myArr}"
             alternatingItemColors="[#FFFFFF, #EEEEEE]" rowColorFunction="selectSeverityColor1" y="99">
             <extension:columns>
                  <mx:DataGridColumn  headerText="Label1" dataField="test"  />
            </extension:columns>    
        </extension:RowColorDataGrid>
     
    <!--deuxieme dg-->
             <extension:RowColorDataGrid id="mydg2" width="50%" height="50%"  dataProvider="{myArr2}"
             alternatingItemColors="[#FFFFFF, #EEEEEE]" rowColorFunction="selectSeverityColor1" y="99" x="389">
             <extension:columns>
                  <mx:DataGridColumn  headerText="Label2" dataField="test"  />
            </extension:columns>    
        </extension:RowColorDataGrid>
     
     
     
    </mx:Application>
    Sachant que les HttpService récupere des fichiers du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Personne_00.xsd/person;Personne_01.xsd/person;
    biology1.xsd/GENECARD_BY_FUNCTION/GCFunctions/Proteins/SWISSPROT/Protein/Description;biology2.xsd/proteinType/type;
    author.xsd/author/name;writer.xsd/writer/named;
    currencyConvertor.xsd/ConversionRate;currencyServer.xsd/getCurrencyValue;
    www.bbltamex.com.xml.xsd/http://www.bbltamex.com/Aboutus/pages/careers/sendcv.asp/Name (*);
    Voyez plutot le résultat :

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2010
    Messages : 61
    Par défaut
    Aprés différents tests, le problèmes semble venir de l'Arraycollection...
    Car, lorsque j'essai de remplir le datagrid avec un array (sans les couleur) ça marche parfaitement...
    Lorsque j'essai de remplir le datagrid avec un arraycollection (sans l'attribut couleur)...celà marche pas...

    Si quelqu'un a une solution...!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2010
    Messages : 61
    Par défaut
    Bonjour, bonjour,

    Petite news, car malgré toute la réussite que j'ai rencontré...je souffre encore d'un probleme mineur...

    Donc j'ai réussi à afficher mon fichier dans mon datagrid, et à y appliquer une couleur, mais...parce qu'il en faut un...
    Lorsque mon datagrid se rempli, il affiche deux lignes identiques, c'est à dire, les mêmes données sur deux lignes d'affilées (alors que je ne possede aucun doublon dans mon fichier à intégrer)...

    De plus, sur ces lignes, seul une ligne sur deux est clickable...les autres sont...on peut dire, factices...

    Je vous joints mon code+ un aperçu

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    public function comparaison():void
    			{
     
    			var test1:String = String(srv3.lastResult);
    			var test2:String = String(srv4.lastResult) ; 
     
    			var re:RegExp = /\n|;|=/;
     
                var result1:Array = test1.split(re);
                var result2:Array = test2.split(re);
                 var x:int=0;
    			 var y:int=0;
     
    			 trace(result1);
    			 trace(result2);
     
                for (var i:int=0; i<result1.length; i++)
                {  
                      value="False";
                	for (var j:int=0; j<result2.length; j++)
                	{
                      if(result1[i] == result2[j])
                     {
    	              if(result1[i+1] == result2[j+1] || result1[i-1] == result2[j-1])
    	              {
    	              	value="True";
    	              }
     
                     }
     
                   }//end for 2 
     
                  if(result1[i] != null && StringUtil.trim(result1[i].toString())!='')
                   {
     
     
                    if (testdg == true)
                    {    var newObj:Object = {} ;
                       newObj["test"] = result1[i]; 
                       newObj["color"] = value;
                       testdg =false;
                    }
                    else
                    {  
                       newObj["test2"] = result1[i]; 
                       newObj["color"] = value;
                       testdg =true;
                    }
                    myArr.addItem(newObj);
     
                   }
     
     
    	  }//end for 1
    	  }//end comparaison
    les srv renseignent toujours des fichiers du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Personne_00.xsd/person;Personne_01.xsd/person;
    Personne_00.xsd/personebis;Personne_01.xsd/personebis;

    Sur l'exemple, la ligne 1 n'est pas clickable alors que je peux sélectionner la deuxieme...et ainsi de suite!!


    [edit]...C'était juste le "myArr.addItem(newObj);" qui était mal placé...
    Il devait figurer dans le else!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] probleme pour remplir les champ d un page web
    Par fred92g dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/12/2013, 13h29
  2. Réponses: 4
    Dernier message: 28/09/2007, 14h24
  3. Probleme pour remplir un formulaire..
    Par Flow_75 dans le forum C++Builder
    Réponses: 17
    Dernier message: 29/12/2006, 12h59
  4. [VB.Net] Probleme pour remplir un DropDownList
    Par angelevil dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/03/2005, 17h59

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