Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
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 03/05/2011, 16h33   #1
Futur Membre du Club
 
Inscription : janvier 2011
Messages : 74
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 74
Points : 15
Points : 15
Par défaut Récuperer la valeur d'un textInput et l'afficher dans un DataGrid

Bojour tout le monde, je débute avec Flex/ActionScript et je bloque sur un truc.
Dans mon fichier .mxml j'ai
Code :
1
2
3
4
5
6
7
8
9
   ....
<s:TextInput id="txt" x="183" y="9"/>
<s:Button click="ajouter(event)" label ="Add"/>
 
mx:DataGrid id="data" >
		<mx:columns>
			<mx:DataGridColumn id="c1" headerText="nom" dataField="nom"/>
		</mx:columns></mx:DataGrid>
...
donc vous pouvez le void quan je clique sur mon bouton ajouter je fais appel à la fonction ajouter(event), dans cette fonction je veux récupérer ma valeur tapé dans le textInput et la mettre dans le dataProvider du DataGrid, pour l'instant j'arrive à faire cela mais quand je met un deuxième mot, le premier disparaît et c'est le dernier mot que j'ai tapé qui est inséré

voilà ma fonction

Code :
1
2
3
4
5
public function ajouter(event:MouseEvent):void
		{
			var text:String=this.view.txt.text;
			data.dataProvider=text;
		}
javast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 20h47   #2
Futur Membre du Club
 
Inscription : janvier 2011
Messages : 74
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 74
Points : 15
Points : 15
juste une modification au niveu de ma fonction, c'est var text:String=txt.text;
javast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 10h11   #3
Futur Membre du Club
 
Inscription : mai 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 11
Points : 15
Points : 15
Hello,
voici la solution...

Code :
1
2
3
4
5
6
7
public function ajouter(event:MouseEvent):void
{
	var text:String=this.view.txt.text;
        var _a:ArrayCollection  = data.dataProvider as ArrayCollection;
        _a.addItem({ nom : text });
	data.dataProvider=_a;
}
ou plus rapidement ( a reverifier )

Code :
1
2
3
4
public function ajouter(event:MouseEvent):void
{
	data.dataProvider=ArrayCollection(data.dataProvider).addItem({ nom : this.view.txt.text});
}
Voili voilou
keazz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 23h26   #4
Futur Membre du Club
 
Inscription : janvier 2011
Messages : 74
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 74
Points : 15
Points : 15
Merci Keaz pour ta réponse, donc j'ai essayé la première version et ça na pas marché, par contre quand j'ai changé la deuxième ligne en faisant ça:

Code :
var _a:ArrayCollection  = new ArrayCollection();
au lieu de
Code :
var _a:ArrayCollection  = data.dataProvider as ArrayCollection;
cela marche que pour l'insertion d'un seul mot, si j'ajoute un deuxième le premier disparu et c'est le deuxième qui est inséré dans DataGrid ?!

voilà si t'as une idée
Merci
javast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h13   #5
Futur Membre du Club
 
Inscription : mai 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 11
Points : 15
Points : 15
Alors une petite question, ta grid est-elle peuplé à la base ou non ?
car si il n'y a rien c'est normal que ça ne marche pas.
essay ceci:

Code :
1
2
3
4
5
6
7
8
public function ajouter(event:MouseEvent):void
{
	var text:String=this.view.txt.text;
        var _a:ArrayCollection  = data.dataProvider as ArrayCollection;
         if( _a == null ) _a  = new ArrayCollection(); // on crée donc la collection si inexistante
        _a.addItem({ nom : text });
	data.dataProvider=_a;
}
ou sinon si ça ne marche toujours pas

Code :
1
2
3
4
5
6
7
8
private var _collection:ArrayCollection;
public function ajouter(event:MouseEvent):void
{
         if( this._collection == null ) this._collection  = new ArrayCollection();
	var text:String=this.view.txt.text;
        this._collection.addItem({ nom : text });
	data.dataProvider=this._collection;
}
keazz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 13h23   #6
Futur Membre du Club
 
Inscription : janvier 2011
Messages : 74
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 74
Points : 15
Points : 15
c'est bon keazz ça marche merci beuacoup
javast 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 10h39.


 
 
 
 
Partenaires

Hébergement Web