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

JSF Java Discussion :

[RichFace]initialisation liste droite et gauche


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 50
    Par défaut [RichFace]initialisation liste droite et gauche
    Bonjour je vous expose mon problème. Je souhaite utiliser le composant picklist de richfaces pour faire de la validation de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <rich:pickList showButtonsLabel="false" value="#{bean.pickList}">
    	<f:selectItems  value="#{bean.snsRejetes}" />
    </rich:pickList>
    <h:commandButton value="Enregister" action="#{bean.enregisterSns}"  image="/images/step-Forward.png"/>
    Dans la liste de gauche j'ai la List<SelectItem>snRejetes
    Dans la liste de droite j'ai la List<String>pickList
    Je veux que l'utilisateur choisisse de passer des snsRejetes dans la liste des autorisés (pickList)

    Ces deux listes sont initialisées dans le bean dans une action, je pense ne pas avoir tout compris dans le fonctionnement du composant. Tel que je le comprend, j'initialise la liste de gauche avec seulement les éléments rejetés et dans la liste de droite avec seulement les éléments validés. Dans ce cas la liste des éléments rejetés (gauche) est bien remplie mais pas celle de droite qui devrait contenir aussi des éléments non.

    initialisation Bean cas 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(final Element sn : items){
    	snsAImporter.add(new SelectItem(sn.getSn(), sn.getSn()));
    	pickList.add(sn.getSn());
    	elements.remove(sn.getSn());
    }
    //	pickList.addAll(elements);
    	snsRejetes.addAll(constructSelectItemList(elements));
    En fouillant sur ce forum j'ai lu que la liste de droite (ma pickList) devait contenir tous les identifiants des éléments des 2 listes, si j’initialise pickList avec tous les identifiants et que je laisse snRejetes avec les éléments rejetés. Je n'ai plus rien dans la liste de gauche et seulement les éléments rejetés dans la liste de droite aie:

    Dans le Cas 2 je copie juste en plus les éléments rejetés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(final Element sn : items){
    	snsAImporter.add(new SelectItem(sn.getSn(), sn.getSn()));
    	pickList.add(sn.getSn());
    	elements.remove(sn.getSn());
    }
    	pickList.addAll(elements);
    	snsRejetes.addAll(constructSelectItemList(elements));
    En plus de cela je trouve la doc de richfaces pas très explicite et je suis poli. Quand ils écrivent que pour utiliser une pickist il faut 2 listes sans prendre la peine de dire que la première doit être une liste de <String> (la value) et l'autre des SelectItem c'est limite du f***age de g**le. J'ai passé plusieurs heures à comprendre le pb. .

    En plus de cela j'ai l'erreur
    Bean.pickList}' java.lang.IllegalArgumentException: argument type mismatch
    Quand j'exécute l'action pour récupérer le contenu de pickList, en fait l'action (enregisterSns) n'est même pas appelé, je pense que le type d'élement ne doit pas être correct , mais je nage dans la semoule

    Pourtant cela me parraissait clair dans ce sujet
    http://www.developpez.net/forums/d79...ist-richfaces/

  2. #2
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 50
    Par défaut
    Je m'auto répond ou plutôt je compléte mes investigations
    J'ai rajouté une liste, qui affiche le contenu de pickList tel que dans l'exemple http://livedemo.exadel.com/richfaces...s/pickList.jsf

    Je vois bien le contenu de picklist à l'initialisation par contre quand je transfert de la gauche vers la droite, la pickList n'est visiblement pas mise à jour (dans la nouvelle liste) par cela apparait dans la liste de gauche (ça devient un peu complexe). Je pense que tout vient de l'exception . Mais je ne vois vraiment pas ou est le problème.
    Il faut bien une ArrayList<String> et ArrayList<SelectItem> ??

    le code modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <rich:pickList showButtonsLabel="false" value="#{bean.pickList}">
    	<f:selectItems  value="#{bean.snsRejetes}" />
    	<a4j:support event="onlistchanged" reRender="result"/>
    </rich:pickList>
     
    <rich:panel id="result" style="padding:0px;height:120px;width:150px;overflow:auto;">
    	<f:facet name="header">
       			<h:outputText value=" N° à enregistrer"></h:outputText>
    	</f:facet>
    	<rich:dataList value="#{bean.pickList}" var="pickList"> 
                		<h:outputText value="#{pickList}"/>
    	</rich:dataList> 
    </rich:panel>

Discussions similaires

  1. Division centrale fixe, division de droite et gauche adaptables
    Par Blustuff dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 13/10/2008, 12h16
  2. Effet d'ombre haut, bas, droite et gauche
    Par kaiser59 dans le forum Imagerie
    Réponses: 2
    Dernier message: 15/03/2007, 12h59
  3. Formulaire avec défilement texte droite et gauche.
    Par nico7792 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/04/2006, 12h44
  4. [C#] Initialisation liste déroulante (dropdownlist)
    Par Amerok dans le forum ASP.NET
    Réponses: 20
    Dernier message: 23/11/2005, 17h48

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