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 :

Comment refraichire un appelle HTTPService


Sujet :

Flex

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut Comment refraichire un appelle HTTPService
    Bonjour,

    Je reviens avec mes problèmes mais là j'ai des incompréhension de logique de programmation avec Flex.
    Mon problème est simple. J'ai un bouton qui permet de recharger mon XML issue d'une réponse serveur. Pour tester que ça fonctionne :
    - Je clique, j'ai bien les données qui remonte dans ma Datagrid.
    - Je change la valeur dans la base de données.
    - Je teste sur une navigateur que la donnée dans le XML a bien changé.
    - Je retourne dans l'application généré et je clique sur le bouton qui est censé recharger le XML. Bizarrement j'ai toujours le même appelle. Le XML ne bouge pas.
    Il n'est pas possible de faire plusieurs appelle au HTTPService ?
    En gros, je voudrais faire un refresh de mon XML.
    Il y a quelqu'un qui a eu un peut prêt le même problème dans le forum mais il n'a pas été très claire sur la manière dont il a trouvé la solution.
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml">
     
     
    	<mx:Script>
    		<![CDATA[
    			import mx.controls.List;
    			import mx.collections.ArrayCollection;
    			import mx.rpc.events.FaultEvent;
    			import mx.rpc.events.ResultEvent;
    			import mx.controls.Alert;
     
     
    			public var _idWarehouse:String;
     
    			public var params:Object = {};
     
    			//Accesseur pour le parametre idWarehouse
    			public function set idWarehouse(p_idWarehouse:String):void{
    				this._idWarehouse = p_idWarehouse;
    			}				
     
    			//Accesseur pour le parametre idWarehouse
    			public function get idWarehouse():String{
    				return this._idWarehouse;
    			}		
     
    			//Réception d'une reponse en XML et renvoyer au datagrid
    			public function onSuccess(e:ResultEvent):void{
    				Alert.show(String(e.result));								
    				DGWarehouse.dataProvider = XMLList(e.result).items.item;																					
    			}		
     
    			//Problème de communication avec le serveur.
    			public function onError(e:FaultEvent):void{
    				Alert.show(String(e.fault.faultDetail));
    			}			
     
     
    			//Fonction permettant d'envoyer uner requête au serveur.
    			public function SendHTTP():void{			
     
    				DGWarehouse.destroyItemEditor();				
    				if(this.idWarehouse != null){							
    					params["idwarehouse"] = this.idWarehouse;
    					dataServiceWarehouse.send(params);
    				}else{				
    					dataServiceWarehouse.send();				
    				}
    			}		
    		]]>
     
     
    	</mx:Script>
     
    	<mx:HTTPService		 
    		id="dataServiceWarehouse"
    		method="GET"
    		url="http://127.0.0.1/zorha/Admin/scripts/php/test.php" 		
    		useProxy="false" 
    		resultFormat="xml"
    		result="onSuccess(event)"
    		fault="onError(event)"/>	
     
     
    	<mx:DataGrid id="DGWarehouse" rowCount="10" creationComplete="SendHTTP()">
    		<mx:columns>
    			<mx:DataGridColumn dataField="idwarehouse" headerText="idwarehouse" width="100"/>
    		    <mx:DataGridColumn dataField="warehouse"   headerText="name"        width="100"/>
    			<mx:DataGridColumn dataField="description" headerText="description" width="100"/>
    		</mx:columns>
    	</mx:DataGrid>
    	<mx:ControlBar>
    		<mx:Button label="Create warehouse" id="crtWarehouse"/>
    		<mx:Button label="Reload" click="SendHTTP()" id="rldWarehouse" />		
    	</mx:ControlBar>	
    </mx:Panel>
    De plus, comment faire pour vider un datagrid ?
    Merci.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Points : 875
    Points
    875
    Par défaut
    Alors ça c'était plus dans la deuxieme solution

    tu as un [Bindable] à rajouter au dessus de ta déclaration de variable idWareHouse;

    Je pense que ça vient de là... peut êre d'autre part mais essaye déjà ça

    Par contre dans le cas présent les setter-getter ne te servent à rien puisque tu as déclaré ta variable en public. Ils sont utiles pour une variable privée.
    N'oubliez pas avant de poster :

  3. #3
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Harg ! je crois que tu ne vas pas être content après moi mais en faisant une recherche ici j'ai trouvé la raison.
    Bon déjà tu as raison sur le faite que j'ai déclaré ma variable en public alors qu'elle devait être privé.
    Mais la raison principale de mon problème de refresh c'est que IE était mal configuré. Il renvoyait le cache donc j'ai changé pour qu'il puisse prendre toujours celui du serveur.
    http://www.developpez.net/forums/d57...e-se-met-jour/

    Par contre, ce qui me chagrine un peut c'est que les utilisateurs ayant mal configuré leur IE auront le même problème. Pas grave, je vais le mettre dans l'aide .

    Bon, la prochaine fois je chercherais un peut mieux
    Merci encore pour intervention et d'avoir vu quelqu'un os sur mon code
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Points : 875
    Points
    875
    Par défaut
    héhé, c'est bien si t'as trouvé la solution

    Finallement tu as eu a mettre un binding pour ta variable ?
    N'oubliez pas avant de poster :

  5. #5
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par Krazymins Voir le message
    héhé, c'est bien si t'as trouvé la solution

    Finallement tu as eu a mettre un binding pour ta variable ?
    En faite, non, car il est là que pour alimenter le paramètre qui va être envoyé au serveur. Je connais pas trop le rôle de [Blindable]. J'ai juste compris qu'il fallait le déclarer ainsi pour qu'il puisse être utilisé dans un dataGrid.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Points : 875
    Points
    875
    Par défaut
    En fait le [Bindable] sert à copier dans toutes les destinations, la nouvelle valeur d'une variable lorsque celle ci change.

    Ainsi par exemple lorsqu'un composant a un dataProvider type :
    dataProvider="{myVariable}" , si pour chaque changement de myVariable,tu veux que ton composant soit mis à jour (ex : dans le cas d'une datagrid) , il te faut normalement placer un [Bindable] au dessus myVariable.

    (ça t'évite également les fonctions du type refresh() etc ..)

    C'est vrai que dans ton cas, idWarehouse ne sert pas à la DG
    N'oubliez pas avant de poster :

  7. #7
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par Krazymins Voir le message
    En fait le [Bindable] sert à copier dans toutes les destinations, la nouvelle valeur d'une variable lorsque celle ci change.

    Ainsi par exemple lorsqu'un composant a un dataProvider type :
    dataProvider="{myVariable}" , si pour chaque changement de myVariable,tu veux que ton composant soit mis à jour (ex : dans le cas d'une datagrid) , il te faut normalement placer un [Bindable] au dessus myVariable.

    (ça t'évite également les fonctions du type refresh() etc ..)

    C'est vrai que dans ton cas, idWarehouse ne sert pas à la DG
    Ha c'est cool se truc. En faite, c'est pour dire que tout ceux qui utiliseront cette variable en faite c'est pas une copie de la variable mais une référence à la variable.
    Merci pour l'info
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2006, 16h31
  2. Modem - Comment accepter un appel vocal entrant ?
    Par julienito dans le forum Développement
    Réponses: 1
    Dernier message: 24/06/2005, 23h52
  3. Réponses: 5
    Dernier message: 10/03/2005, 17h41
  4. Comment connaitre l'appelant d'une méthode
    Par Alec6 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 12/07/2004, 14h51
  5. [VB.NET] Comment faire un appel de fonction ?
    Par Webman dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/05/2004, 10h06

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