Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2011, 11h26   #1
Invité de passage
 
Inscription : mai 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 8
Points : 3
Points : 3
Par défaut Afficher les données des input dans un datagrig

Bonjour à tous,

Flex, c'est tout nouveau pour moi et j'ai besoin d'aide.
J'ai 3 champs input (nom, prénom, Email ) et un bouton valider.

Je voudrais qu'une fois les champs de saisies remplis et valider par le bouton, les données des champs de saisie alimentent les colonnes (nom, prénom et mail) de mon datagrid.

Mon souci est de faire le lien entre input, button et datagrid.
J'ai compris qu'il faut d'abord créer un tableau dans lequel récupérer les données des input dans un tableau mais je suis perdu dans l'agencement des choses.

Merci d'avance

Mon code MXML:
Code :
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
<Application>
		<mx:Script>
			<![CDATA[
 
				import flash.events.Event;
 
				Private function RecupererResultat(evt:Event):void {
					trace("Appuyer sur le boutton pour observer");
					.....
				}
 
			]]>
		</mx:Script>
 
		<mx:TextInput x="164" y="72"/>
		<mx:Text x="88" y="74" text="Nom" id="nameTT"/>
		<mx:TextInput x="164" y="111"/>
		<mx:Text x="88" y="113" text="Prenom" id="firstnameTT"/>
		<mx:TextInput x="164" y="154" />
		<mx:Text x="88" y="156" text="Email" id="emailTT"/>
		<mx:Button x="164" y="223"  label="Valider" click="RecuperationResultat(event)" />
 
		<mx:DataGrid x="97" y="316" id="usersDGD" dataProvider="{monTableau}">
			<mx:columns>
				<mx:DataGridColumn headerText="nom" dataField="col1"/>
				<mx:DataGridColumn headerText="prenom" dataField="col2"/>
				<mx:DataGridColumn headerText="email" dataField="col3"/>
			</mx:columns>
		</mx:DataGrid>
 
 
	</mx:Application>
yanesty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 12h00   #2
Modérateur
 
Homme
Consultant Flex / Java
Inscription : novembre 2008
Messages : 452
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant Flex / Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 452
Points : 637
Points : 637
Salut,
il faut qu'au moment du clic tu récupères les données dans tes champs, que tu remplisses un objet avec ces champs, et qu'enfin tu insères cet objet dans ton array collection affiché dans ta datagrid.
Comme un peu de code est toujours mieux qu'un long discours, voici :
Code :
1
2
3
4
5
6
7
private function buttonClickHandler(evt:Event):void {
       var obj:Object = new Object();
        obj.col1 = nameTT.text;
        obj.col2 = firstnameTT.text;
        obj.col3 = emailTT.text;
	monTableau.addItem(obj);
}
N'hésites pas à jetter un oeil sur la doc et les datagrid/arraycollection.
__________________
N'oubliez pas avant de poster :
et bien sûr la doc Flex
Krazymins est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/03/2011, 17h06   #3
Invité de passage
 
Inscription : mai 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 8
Points : 3
Points : 3
Bonjour et Merci pour ta réponse rapide Krazymins.

En testant avec ton bout de code mon application ne marche pas.
Je pense que je n'ai pas encore bien compris le fonctionnement flex et action script,je me demande s'il faut pas mettre en place une deuxième fonction qui gère l'événement click sur le bouton pour permettre la communication entre bouton et input? si tel est le cas faut -il que ça soit une function de gestion personnalisé d'événement ou non?

Je propose ici le code entier:

Code :
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
 
<?xml version="1.0" encoding="utf-8"?>
 
	<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" >
 
		<mx:Script>
			<![CDATA[
				// Récupérer l’ApplicationFacade 
				import com.me.myapp.ApplicationFacade;
				import flash.events.Event;
				//import mx.collections.ArrayCollection;
				import org.puremvc.as3.patterns.observer.Notification;
 
				//Créer et initialiser l'application facade
				private var facade:ApplicationFacade = ApplicationFacade.getInstance();
 
				dispatchEvent(customEvent);
 
				private function buttonClickHandler(evt:Event):void {
					[Bindable]
					var obj:Object = new Object();
					obj.col1 = nameTT.text;
					obj.col2 = firstnameTT.text;
					obj.col3 = emailTT.text;
					monTableau.addItem(obj);
				}				
 
 
			]]>
		</mx:Script>
 
		<mx:TextInput x="164" y="72" includeIn=""/>
		<mx:Text x="88" y="74" text="Nom" id="nameTT"/>
		<mx:TextInput x="164" y="111"/>
		<mx:Text x="88" y="113" text="votre Prenom" id="firstnameTT"/>
		<mx:TextInput x="164" y="154" />
		<mx:Text x="88" y="156" text="Email" id="emailTT"/>
		<mx:Button x="164" y="223"  label="Valider vos saisies"  click="buttonClickHandler(event);" />
 
		<mx:DataGrid x="97" y="316" id="usersDGD" dataProvider="{monTableau}">
			<mx:columns>
				<mx:DataGridColumn headerText="nom" dataField="col1"/>
				<mx:DataGridColumn headerText="prenom" dataField="col2"/>
				<mx:DataGridColumn headerText="email" dataField="col3"/>
			</mx:columns>
		</mx:DataGrid>
 
	</mx:Application>
yanesty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 18h02   #4
Modérateur
 
Homme
Consultant Flex / Java
Inscription : novembre 2008
Messages : 452
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant Flex / Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 452
Points : 637
Points : 637
Citation:
Envoyé par yanesty Voir le message
Bonjour et Merci pour ta réponse rapide Krazymins.

En testant avec ton bout de code mon application ne marche pas.
Qu'entends tu par "ca ne marche pas". Quel est le résultat. As-tu lancé en mode debug pour voir tes variables ?

Citation:
Envoyé par yanesty Voir le message
Je pense que je n'ai pas encore bien compris le fonctionnement flex et action script,je me demande s'il faut pas mettre en place une deuxième fonction qui gère l'événement click sur le bouton pour permettre la communication entre bouton et input? si tel est le cas faut -il que ça soit une function de gestion personnalisé d'événement ou non?
Non car l'évènement click est déjà dispatché à cette ligne :
Code :
<mx:Button x="164" y="223"  label="Valider vos saisies"  click="buttonClickHandler(event);" />
[EDIT] Au temps pour moi, les id passés sont mauvais.

Il te faut passer les ids des text input :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
.....
private function buttonClickHandler(evt:Event):void {
		[Bindable]
		var obj:Object = new Object();
		obj.col1 = nameTI.text;
		obj.col2 = firstnameTI.text;
		obj.col3 = emailTI.text;
		monTableau.addItem(obj);
	}				
 
 
<mx:TextInput x="164" y="72" includeIn="" id="nameTI"/>
<mx:Text x="88" y="74" text="Nom" id="nameTT"/>
<mx:TextInput x="164" y="111" id="firstnameTI"/>
<mx:Text x="88" y="113" text="votre Prenom" id="firstnameTT"/>
<mx:TextInput x="164" y="154" id="emailTI"/>
<mx:Text x="88" y="156" text="Email" id="emailTT"/>
 
....
__________________
N'oubliez pas avant de poster :
et bien sûr la doc Flex
Krazymins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 19h43   #5
Nouveau Membre du Club
 
Homme alexandre
Ingénieur développement de composants
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme alexandre
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur développement de composants
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 29
Points : 29
Pour faire simple:

Code :
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
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
	xmlns:s="library://ns.adobe.com/flex/spark" minHeight="600"
	xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" >
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
 
			[Bindable]
			public var aC:ArrayCollection = new ArrayCollection;
 
			protected function button1_clickHandler(event:MouseEvent):void
			{
				aC.addItem({prenom:textInput1.text,nom:textInput2.text,mail:textInput3.text});
			}
 
		]]>
	</fx:Script>
	<s:VGroup>
	   <s:TextInput id="textInput1"/>
	   <s:TextInput id="textInput2"/>
           <s:TextInput id="textInput3"/>
	   <s:Button click="button1_clickHandler(event)"/>
	   <mx:DataGrid dataProvider="{aC}">
              <mx:columns>
		 <mx:DataGridColumn dataField="prenom"/>
	         <mx:DataGridColumn dataField="nom"/>
                 <mx:DataGridColumn dataField="mail"/>
              </mx:columns>
	   </mx:DataGrid>
	</s:VGroup>
</s:Application>
catalor est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/04/2011, 14h38   #6
Invité de passage
 
Inscription : mai 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 8
Points : 3
Points : 3
Bonjour et merci pour vos réactions sur ce sujet.

Ayant actuellement un souci avec mon environnement de travail, je ne peux tester vos propositions immédiatement.
Je veillerai à clôturer le dossier une fois les tests réalisés ; mais pour le moment je m'occupe de résoudre mon problème d'environnement de dev.

merci encore
yanesty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web