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 :

Modifier dynamiquement le contenu d'une TitleList


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Par défaut Modifier dynamiquement le contenu d'une TitleList
    Bonjour,

    J'ai deux ComboBox (Année et mois) qui déterminer les données à afficher dans une TiltleList.

    Que dois-je faire dans "closeHandlerCbxAnnee" pour modifier les données afficher dans ma TileList lorsque la comboBox est fermée ?

    Je ne sais pas si je dois modifier le dataProvider ou bien recharger les données dans le tableau "stats" ?
    Dans les deux cas, je n'ai aucune idée de la syntaxe à utiliser ?

    Merci d'avance.

    PS : Je débute en Flex.

    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
     
       <mx:Script>
            <![CDATA[
     
                import mx.collections.ArrayCollection;
     
                [Bindable]
                private var stats:ArrayCollection;
     
                private function init():void
                {
                    stats = new ArrayCollection(model.statistique);
                }
                private function closeHandlerCbxAnnee(event:Event):void {
                	var sannee:String = ComboBox(event.target).selectedItem.label;
                	var annee:int =  parseInt(sannee) ;
                	var mois:int = 1 ;         	
    				searchItemByAAAAMM(annee,mois);
                } 
     
            ]]>
        </mx:Script>
     
    <mx:ComboBox name="anneeCbx" x="21" y="19" width="79" dataProvider="{annee}" labelField="name" close="closeHandlerCbxAnnee(event);" ></mx:ComboBox>
    <mx:ComboBox name="moisCbx" x="105" y="19" width="109" dataProvider="{mois}" labelField="name" fillAlphas="[0.0, 0.0, 0.0, 0.0]"></mx:ComboBox>
     
    <mx:Panel x="250" y="76" title="Statistiques Mensuelles KparK" width="470" height="478" layout="absolute" visible="true">
    		<mx:TabNavigator id="tn"  width="420" height="377" color="0x323232"  x="10" y="26">
    		        <!-- Define each panel using a VBox container. -->		        
    		        <mx:VBox label="Semaine 1">
    		            	<mx:TileList name="tl1" dataProvider="{stats}" x="297" y="76" maxColumns="4" width="403" height="329" borderStyle="none" itemRenderer="statRender">		            	
    		            	</mx:TileList>
    		        </mx:VBox>
    		    </mx:TabNavigator>
    </mx:Panel>

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    1- Mauvaise idée d'utiliser l'événement "close" de la combo. En effet cet événement traduit la fermeture de la liste déroulante. On peut très bien fermer cette liste sans sélectionner de valeur et on peut très bien sélectionner une valeur sans ouvrir cette liste...

    2- Sauf si ton "handler" est utilisé par plusieurs objets et que dans ton traitement tu dois accèder à des valeurs spécifiques de chaque objet, il est plus simple de donner un "id" à ta combo (cmbAnnee ici) et d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var annee:int =  parseInt( cmbAnnees.text);
    3- Dans la mesure où "stats" est "Bindable" il suffit de le mettre à jour pour que tous les composants liés se réactualisent automatiquement avec les nouvelles valeurs.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Par défaut
    J'ai suivi tes recommandations :


    Comment mettre à jour le tableau "stats" dynamiquement en sachant que les donnée sont présentes sous forme d'un fichier XML?

    J'utilise actuellement ceci pour alimenter mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:Model id="model" source="ressources/test_statistique.xml"/>

    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
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="734" themeColor="#D8B735" alpha="1.0" borderStyle="solid" borderThickness="5" borderColor="#F34A0F"
    	applicationComplete="init()"
    	>
     
       <mx:Script>
            <![CDATA[
     
                import mx.collections.ArrayCollection;
     
                [Bindable]
                private var stats:ArrayCollection;
     
                private function init():void
                {
                    stats = new ArrayCollection(model.statistique);
                }
                private function closeHandlerCbx():void {
                	//var sannee:String = ComboBox(event.target).selectedItem.label;
                	var annee:int =  parseInt(anneeCbx.value.toString()) ;
                	var mois:int = parseInt(moisCbx.text) ;         	
    				searchItemByAAAAMM(annee,mois);
                }  
                private function searchItemByAAAAMM(annee:int,mois:int):void {
     
                <!-- Comment faire pour mettre a jour ?-->
    				stats = new ArrayCollection(model.statistique); <!-- ??????? -->
                }            
     
     
     
            ]]>
        </mx:Script>
     
     
    	<mx:Model id="model" source="ressources/test_statistique.xml"/>
     
     
    	<mx:ComboBox id="anneeCbx" x="21" y="19" width="79" dataProvider="{annee}" labelField="name" close="closeHandlerCbx();" ></mx:ComboBox>
    	<mx:ComboBox id="moisCbx" x="105" y="19" width="109" dataProvider="{mois}" labelField="name" fillAlphas="[0.0, 0.0, 0.0, 0.0]"></mx:ComboBox>
     
        <mx:Tree id="myTree" width="211" height="321" labelField="@label"
            showRoot="false" dataProvider="{treeData}"  x="21" y="76"/>    
        <mx:Panel x="250" y="76" title="Statistiques Mensuelles KparK" width="470" height="478" layout="absolute" visible="true">
    		<mx:TabNavigator id="tn"  width="420" height="377" color="0x323232"  x="10" y="26">
    		        <!-- Define each panel using a VBox container. -->		        
    		        <mx:VBox label="Semaine 1">
    		            	<mx:TileList id="tl1" name="tl1" dataProvider="{stats}" x="297" y="76" maxColumns="4" width="403" height="329" borderStyle="none" itemRenderer="statRender">		            	
    		            	</mx:TileList>
    		        </mx:VBox>
     
    		    </mx:TabNavigator>	
    		<mx:ComboBox x="22" y="10" width="111" dataProvider="{magasin}" labelField="name"  ></mx:ComboBox>
        </mx:Panel>	
     
    </mx:Application>

  4. #4
    Membre éprouvé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 481
    Par défaut
    Comment mettre à jour le tableau "stats" dynamiquement en sachant que les donnée sont présentes sous forme d'un fichier XML?
    dynamiquement ?
    c'est-à-dire ?

    1 ) quand tu as choisi tes critères mois / année ?
    2) ou quand le fichier XML a évolué ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    Comment mettre à jour le tableau "stats" dynamiquement en sachant que les donnée sont présentes sous forme d'un fichier XML?
    Désolé mais je ne connais pas l'objet Modele...
    Peut-être a-t'il une méthode du genre refresh() ou reload() ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Par défaut
    Michael,

    Je souhaite mettre à jour la liste lorsque l'une des comboBox est modifiée.
    Pour l'instant la balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:Model id="model" source="ressources/test_statistique.xml"/>
    me permet de lire un fichier XML dont le contenu est affiché dans ma liste.

    Mais je souhaiterai qu'a chaque changement d'un comboBox, un autre fichier soit lu (ex : fichier2009_01.xml pour janvier 2009).

    A+

Discussions similaires

  1. [WD-2000] Modifier format du contenu d'une cellule liée à un texte
    Par Oh_Oui dans le forum Word
    Réponses: 10
    Dernier message: 07/07/2010, 13h55
  2. Modifier dynamiquement le "langage d'une table paradox"
    Par sp2i dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/11/2009, 15h57
  3. Modifier les définition CSS - Modifier dynamiquent la hauteur d'une page
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/05/2008, 19h31
  4. [Débutant] Modifier dynamiquement le contenu d'une JFrame
    Par FabaCoeur dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 27/10/2007, 18h08
  5. Réponses: 4
    Dernier message: 23/04/2007, 12h01

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