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 :

Generer des TextInput automatiquement avec numericStepper


Sujet :

Flex

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut Generer des TextInput automatiquement avec numericStepper
    Bonjour à tous,
    Après avoir parcouru le net, je ne trouve pas solution à mon problème: dans une fenêtre Flex, je désire ajouter des réponses à une question à choix multiple. Le problème, c'est que je dois laisser le choix à l'utilisateur de mettre le nombre de réponses qu'il désire. J'ai donc penser à un NumericStepper.
    Et maintenant je veux que la fenêtre crée automatiquement des TextInput au nombre précisé dans le NumericStepper!

    Qui sait comment faire? Un peu binding quelque part mais je vois pas trop où?
    Ou si vous avez une technique plus appropriée, je suis preneur...
    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Pour ce type de saisie il semble plus ergonomique de proposer un seul champ TextInput et soit d'afficher un bouton [+] à droite du champ pour en ajouter un ou plusieurs autres ou bien d'ajouter un nouveau composant TextInput à chaque fois que le précédent contient une valeur non nulle.

    Dans tous les cas il faut écrire un bout de code AS pour ajouter des objets TextInput dans un container (VBox ?) depuis une fonction déclenchée par un événement.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par jylaxx Voir le message
    Pour ce type de saisie il semble plus ergonomique de proposer un seul champ TextInput et soit d'afficher un bouton [+] à droite du champ pour en ajouter un ou plusieurs autres ou bien d'ajouter un nouveau composant TextInput à chaque fois que le précédent contient une valeur non nulle.

    Dans tous les cas il faut écrire un bout de code AS pour ajouter des objets TextInput dans un container (VBox ?) depuis une fonction déclenchée par un événement.
    Merci pour ce conseil, mais peux tu m'aider avec le bout de code AS? Je suis debutant en AS/MXML.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Malheureusement je ne peux pas écrire le code à ta place. Tu dois te familiariser avec le langage et les objets Flex, notamment les container et les DisplayObject.

    Commence par placer un bouton et un container VBox dans ton fichier mxml.
    Dans l'événement click du bouton tu écris le bout de code qui ajoute un TextInput dans le VBox.

    Une fois que tu auras bien compris comment cela fonctionne, tu ajouteras dans ta VBox une HBox contenant elle même trois VBox. Tu places dans ta première VBox un label qui indique le type de la donnée, dans la deuxième un TextInput et dans la troisième le bouton précédent.
    L'événement click ajoutera cette fois un nouveau TextInput en dessous de celui créé en mxml. Ainsi tu auras un item auquel tu pourras attribuer un nombre quelconque de valeurs...
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Tu as raison! Mais si tu peux me mettre sur le chemin... J'ai voulu essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     reponsesBox.addChild(new FormItem())
    Mais je ne trouve aucun paramètres pouvant m'aider pour la suite

    J'ai pensé à un truc équivalent au innerHTML de Javascript/HTML mais sans succès. Un coup de pouce, svp

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Déjà FormItem est lui même un container donc tu commences pas par le plus simple pour comprendre.
    Je t'ai volontairement indiqué des composants simples dans mon précédent mail, Box, TextInput et Button.

    Vouloir faire des comparaison entre Flex et HTML n'a pas vraiment de sens. Perso je ne connais pas plus que ça HTML donc innerHTML n'évoque rien pour moi.

    Mais je ne trouve aucun paramètres pouvant m'aider pour la suite
    C'est à dire ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var ti : TextInput = new TextInput() ;
    // là tu peux initialiser les propriétés de ti
    ti.text = "valeur" ;
    //...
    box.addChild( ti ) ;
    Après il faut passer du temps, beaucoup de temps pour comprendre en multipliant les expériences.

    Je peux répondre à des questions précises mais pas construire l'architecture de ton application et en écrire le code à ta place. Surtout que tu ne tentes pas de mettre en application ce que je t'écris !!!
    Si tu es débutant c'est pas les trois lignes de code que je vais te donner qui vont t'amener une grande expérience. Il faut que tu fasses ton chemin...
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Salut, j'ai un peu creusé! Et d'ailleurs, c'est le chemin que j'ai trouvé (L'exemple de code que tu viens d'ecrire).
    J pense que ça devrait aller.

    Merci

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut Maintenant la suppression
    J ai réussi a faire les ajouts des question et tout semble marcher!
    Je voudrais également permettre la suppression des elements (reponses) ainsi ajoutés de façon similaire à travers un bouton que je cree devant chaque reponse.

    Mon probleme se trouve desormais au niveau de la gestion des ID, j sais pas comment les réinitialiser pour qu'il suive l'ordre "rep1", "rep2".

    Mon problème est en fait de pouvoir acceder aux éléments plus profond: FormItem - HBox - TextInput

    Je colle le code de ma fonction qui efface les reponses un à un en effectuant le recomptage:

    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
     
    private function delAnswer(e:MouseEvent):void
    {
    	var evtOrigin:Button = e.target as Button;
    	var formItem:FormItem = evtOrigin.parent.parent as FormItem;	
    	//formItem = evtOrigin.parent.parent as FormItem;				
    	formItem.removeAllChildren();
    	answersBox.removeChild(formItem);
    	nb_reponse--;
     
    	// recomptage
    	for(var i:Number=0; i < nb_reponse; i++)
    	{
    		var renameFI:FormItem = answersBox.getChildAt(i) as FormItem;
    		renameFI.label = "Réponse "+int(i+1)+":";
    		// Commen acceder au reste a partir d'ici
    		// la structure est générée de la sorte par addAnswer(): answersBox.FormItem.HBox.TextInput.       			        		
    	}
     
    }

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Je ne suis pas certain de comprendre ta demande...
    A quoi te servent tes ID ?
    Perso je code beaucoup en AS et je n'ai jamais eu besoin de gérer les ID des objets. C'est vraiment utile pour les objets mxml.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Les reponses se trouvent dans un élément Form. Pour enregistrer les données sur le serveur, j'aurai besoin de ces ID afin de recuperer les contenus des champs par ex. rep1.text

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Si j'ai bien compris le nombre de valeurs est variables.
    Donc à part faire une boucle pour récupérer toutes les valeurs, je ne vois pas comment tu vas les récupérer.
    Hors si tu fais une boucle c'est sur un indice d'un tableau.
    Donc tu récupéreras ta variable à partir de cet indice.

    Peut-être qu'utiliser directement le ID parait plus simple d'un côté, mais s'il nécessite un code encore plus compliqué pour le mettre à jour, il est peut-être préférable de ne pas l'utiliser...
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

Discussions similaires

  1. Envoi des e_mail automatiquement avec J2EE
    Par krichenboy dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 13/03/2014, 13h50
  2. [The Grinder] lancer des Test "automatiques" avec Ant
    Par st0rm dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 04/02/2011, 12h16
  3. Generer des fichiers text avec un codage unix
    Par proDZ dans le forum Général Java
    Réponses: 10
    Dernier message: 04/09/2009, 13h23
  4. Réponses: 4
    Dernier message: 25/01/2007, 14h41
  5. generer des caracteres accentues avec javascript
    Par aleroux dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 15h03

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