Bonjour,
je dois pour mon stage développer une application de génération de questionnaire avec jsf 2.0.
L'une des étapes de la création d'un questionnaire est de choisir le contenu de celui via des h:selectOneMenu avec le type de question qu'il souhaite ajouter (Ouverte,fermée,NPS,etc...)
J'ai donc créé dans la page xhtml un h:selectOneMenu, un label qui correspond au titre de la question et un inputText pour qu'il puisse saisir le titre et un bouton "Ajouter" qui va permettre de créer cette question.
Je souhaite maintenant que quand l'utilisateur clic sur le bouton ajouter, une nouvelle listeBox apparaisse avec un label titre et un input text Type.
J'arrive à ajouter du texte dynamique mais ajouter des composants, c'est une autre histoire....
Pour l'instant, j'ai mis une action sur le commandButton qui appelle la méthode addComponentde mon GridCentraleController (managed bean de la page) qui permet d'ajouter des elements.
Ensuite, j'ai dans ma page xhtml un :
, qui est appelé quand je charge la page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <h:panelGrid binding="#{gridPanelCentralController.containerComponent}"/>
Voila ma méthode add Component :
Dans cette méthode, ce qui me pose un problème et comment ajouter le contenu de la listeBox alors que je ne peux pas faire de f:selectItem ?
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 void addComponents() { //clean previous component containerComponent.getChildren().clear(); //ajout dynamique des composants au Container UIColumn col=new UIColumn(); HtmlOutputText ot = new HtmlOutputText(); ot.setValue("coucou"); col.getChildren().add(ot); //C'est ici que je bloque :'( UIColumn col2=new UIColumn(); HtmlSelectOneMenu selecta=new HtmlSelectOneMenu(); //Ajout des elements de la listeBox selecta.????? //Ajout de la listeBox à une colonne pour l'ajouter au container col2.getChildren().add(selecta); if (containerComponent == null) { containerComponent = new HtmlPanelGrid(); } containerComponent.getChildren().add(col); containerComponent.getChildren().add(col2); }
Merci à toute éventuelle personne pouvant m'aider.
Anack.
Partager