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 :

Mise ajour d'un champ text number d'une colonne d'un datagrid


Sujet :

Flex

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 285
    Points : 91
    Points
    91
    Par défaut Mise ajour d'un champ text number d'une colonne d'un datagrid
    Bonjour,

    J'ai un datagrid contenant des produits dont une colonne contient le du produit. J'ai un composant title windows pour mon datagrid et un autre pour ma mis a jour du produit.
    Lorsque je veux mettre a jour mon produit j'arrive bien a faire l'update de ma base grace a mon web serservice, mais mon datagrid ne se met pas a jour au niveau du prix. pour mettre a jour je récupère le rpodut courant de ma datagrid et je le met a jour ensuite :
    Récupération du produit click sur bouton modif de la ligne du produit a modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TWProduit.currentProduit = evt.target.parent.parent.selectedItem;
    Mis a jour datagrid :
    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
     
    public function updateproduitsHandeler(res:ResultEvent):void
    		{
    			var node:XMLList = XMLList(res.result.item);
    		 	if (node.* == "true")
    		 	{
     
     
    				tools.showTiriaAlert("Produit mis à jour");
     
    				//currentProduit.labelFunction=(currentProduit.@Prix*1.196);
    				updateDataGrid();
    				//Alert.show(currentProduit.labelFunction.toString());
    				PopUpManager.removePopUp(this);
    			}
    		}
    		public function updateDataGrid(): void 
    		{
    			currentProduit.@product = NomProduit;
    			currentProduit.@type =  typeMenu;		
    			currentProduit.@Prix = PrixHT;
     
     
    		}

  2. #2
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    oui et ? c'est quoi le soucis en fait ?

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 285
    Points : 91
    Points
    91
    Par défaut
    J'ai peut etre pas été assez clair. le souci est que mon datagrid ne se met pas a jour au iveau de la colonne prix. Voici lecode de mon datagrid :
    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
     
    <mx:DataGrid id="dgProduct" hideEffect="{hideEffect}" showEffect="{showEffect}"  dataProvider="{ProduitXml}" left="1" top="84" right="11" bottom="-16" width="420">
    					<mx:columns>
    						<mx:DataGridColumn id="dgcolProduit" headerText="Produit" dataField="@product" width="250"/>					
    							<mx:DataGridColumn headerText="Type" dataField="@type"  width="100">						
    						</mx:DataGridColumn>
    						<mx:DataGridColumn id="dgColPrix" headerText="Prix TTC" dataField="@Prix" labelFunction="prixTTC" width="100"/>
    						<mx:DataGridColumn width="40">
    							<mx:itemRenderer>
    								<mx:Component>									
    									<mx:Button label="Modifier" click="outerDocument.updateProduit(event)" borderColor="#228FDB" fillAlphas="[1.0, 1.0]" fillColors="[#1E36CA, #1E36CA]" color="#FFFFFF" fontSize="10"/>						
     
    								</mx:Component>
    							</mx:itemRenderer>
    						</mx:DataGridColumn>
    						<mx:DataGridColumn width="10">
    							<mx:itemRenderer>
    								<mx:Component>									
    									<mx:Button icon="@Embed(source='../../../assets/img/cross.png')" click="outerDocument.deleteProduit(event)" borderColor="#228FDB" fillAlphas="[1.0, 1.0]" fillColors="[#1E36CA, #1E36CA]" color="#FFFFFF" fontSize="10"/>			
     
    								</mx:Component>
    							</mx:itemRenderer>
    						</mx:DataGridColumn>
    					</mx:columns>
    				</mx:DataGrid>

  4. #4
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Moi ce que j'ai fait pour pallier à se soucis, c'est dans ta fonction updateGrid, tu rappelles ton service qui appel tes objets ton getProduit(si tu l'as appelé comme ca)

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Citation Envoyé par xavpiaf Voir le message
    pour mettre a jour je récupère le rpodut courant de ma datagrid et je le met a jour ensuite :
    C'est normal que le produit ne soit pas à jour puisque tu ne l'as mis à jour uniquement côté serveur il faut penser comme l'a dit miya à récupèrer tes nouveaux objets mis à jour côté serveur.

    La technique d'utiliser ce qu'a mis à jour l'utilisateur au lieu de récupérer les vrais données côté serveur : je te le déconseille. Car si ta mise à jour se passe mal tu risques d'avoir des données incohérentes.

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 285
    Points : 91
    Points
    91
    Par défaut
    je vous remercie pour vos réponses. Je voulais éviter de refaire appel a mon service c'est pourquoi je verifie que la mise a jour soit bien réalisé dans la base avant de mettre a jour la datagrid.
    Donc si quelqu'un a une solution sans appel a mon webservice de récupératin de tous les produits merci de me la proposer .
    je vais maintenant tester en utilisant le service getProduit?
    je vous tiens au courant encore merci.

  7. #7
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    si tu modifies ProduitXml ton datagrid sera a jour.
    Je ne sais pas comment est articulé ton code coté serveur mais si tu partage ton objet ProduitXml des 2 côtés cela te permet de tenir a jour ton dataGrid sans effort

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 285
    Points : 91
    Points
    91
    Par défaut
    Merci, je partage bien ProduitXml, comment puis je mettre a jour svp??

  9. #9
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    si ton dataprovider est à jour, ton datagrid est alors à jour.

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 285
    Points : 91
    Points
    91
    Par défaut
    ok, je savais ca deja, je me demandais si il est possible de mettre a jour le xml sans utiliser le service web faire kke chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(ProduitXml.(@idproduit == currentProduit.@idproduit ))
    			{
    		 	ProduitXml.item.@product = NomProduit;
    			ProduitXml.item.@type =  typeMenu;		
    			ProduitXml.item.@Prix = PrixHT;
    			}

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    C'est impossible de modifier directement le XML comme ça, depuis Flex... Tu vas devoir passer par du PhP car il me semble que ce n'est pas possible d'enregistrer/créer un fichier via une app web en Flex.

  12. #12
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 285
    Points : 91
    Points
    91
    Par défaut
    ok merci, je suis donc obligé de repasser par le web service merci a tous

  13. #13
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    attention il ne faut pas confondre fichier XML sur le disque et objet XML dans ton code

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    +1

    Techniquement, tu peux modifier ton flux XML, c'est à dire les données qui proviennent de ton serveur ou que tu veux renvoyer... tout dépend de ce que tu veux faire exactement...

    Mais tu ne peux pas sauvegarder un fichier XML en local sur le poste client (à moins d'utiliser AIR au lieu de Flex)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/01/2010, 07h23
  2. [AC-2000] Mise à jour d'un champ texte
    Par Jean-Luc80 dans le forum IHM
    Réponses: 1
    Dernier message: 15/05/2009, 13h45
  3. Mise en forme contenu champ texte
    Par Manuxy dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 14h04
  4. Mise à jour d'un champ texte via une liste déroulante
    Par dedein84 dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2008, 21h24
  5. Remplir 3 champs textes différents avec une liste déroulante
    Par azorol dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/12/2005, 01h04

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