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 :

Data Binding avec setter et getter possible?


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut Data Binding avec setter et getter possible?
    Bonjour à tous,

    Je débute en Flex et suis confronté à un problème dans la création d'un composant.
    Le problème dans mon application pourrait-être exemplifié comme suit :

    Le composant :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" >
    	<mx:Script>
    		<![CDATA[
    			[Bindable]
    			private var str:String;
    			public function set text(str:String):void
    			{
    				this.str = str;
    			}
    			public function get text():String
    			{
    				return input.text;
    			}
    		]]>
    	</mx:Script>
    	<mx:Form>
    	<mx:FormItem>
    		<mx:TextInput id="input" text="{this.str}" />
    	</mx:FormItem>
    	</mx:Form>
    </mx:Canvas>

    L'application :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <mx:Application  xmlns:mx="http://www.adobe.com/2006/mxml" usePreloader="true" xmlns:component="component.*">
    <mx:Script>
    <![CDATA[
    			public function clickHandler(event:Event):void
    			{
    				mx.controls.Alert.show(composant.text);
    				mx.controls.Alert.show(query.request.message);
    			}
     
    		]]>
    </mx:Script>
    <mx:HTTPService id="query" url="http://www.google.be" useProxy="false" method="post" result="mx.controls.Alert.show(event.toString())" fault="mx.controls.Alert.show(event.toString())">
    	<mx:request>
    		<message>{composant.text}</message>
    	</mx:request>
    </mx:HTTPService>
    <mx:Panel>	
    	<component:composant id="composant" text="Hello World" />
    	<mx:Button click="clickHandler(event)" label="Afficher le texte" />
    </mx:Panel>
    </mx:Application>
    A la compilation tout se déroule convenablement à l'exception de ce message
    Warning: Data binding will not be able to detect assignments to "text".
    (concerne la ligne <message>{composant.text}</message>)

    Lors du clic sur le bouton la premiere action se déroule sans problème, j'affiche bien le contenu de mon TextInput.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mx.controls.Alert.show(composant.text);
    Pour la deuxième action (celle qui m'intéresse le plus), l'alert s'affiche correctement mais le contenu est vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mx.controls.Alert.show(query.request.message);
    La méthode qui m'intéresse particulièrement est de pouvoir récupérer "composant.text" dans ma requête et l'envoyer sans devoir passer par une multitude de fonction actionscript et je ne veux pas modifier mon private str:String en public str:String.

    Quelqu'un aurait-il l'astuce que je ne trouve pas (ou ne comprend pas en ayant le nez dessus) ?

    Un très grand merci d'avance.

  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
    Par défaut
    Tout d'abord, tu n'aurais pas oublier d'envoyer ton HTTPService ?


    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut
    Non, c'est un code pour exemplifier ce que je désirerais faire, la requête n'a pas vraiment d'importance ici.

    Mais pour ton info :
    J'ai envoyé la requete vers une page php comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php 
    ob_start();
    print_r($_POST);
    mail("adressemail","Test",ob_get_contents());
    ?>
    Le mail recu est
    Tout comme mon alert, ma requête reste vide.

    Merci de ta réponse rapide

Discussions similaires

  1. [Débutant] Boucle pour déclaration du data binding. (pb avec adressof)
    Par Gualino dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/09/2011, 11h23
  2. Data binding avec des Vector
    Par toopac dans le forum Flex
    Réponses: 3
    Dernier message: 29/10/2010, 16h09
  3. Réponses: 2
    Dernier message: 27/04/2010, 11h01
  4. Data Binding avec une donnée
    Par vinlap dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 23/05/2009, 13h48
  5. Data bindings avec des pictures box
    Par patoche.05 dans le forum C#
    Réponses: 0
    Dernier message: 20/04/2009, 12h54

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