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 :

rich panelbar dynamique et rafraichissement datalist via ajax


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Par défaut rich panelbar dynamique et rafraichissement datalist via ajax
    Bonjour à tous,

    Des soucis JSF, encore des soucis...

    J'essaies de vous expliquer le contexte:
    Un blog, je viens de cliquer sur un des sujet pour le consulter.
    dans cette jsf de consultation, j'ai un panelBar contenant les sousSujets et leur description ainsi qu'une datalist contenant tous les commentaires sur le sousSujet visible.
    Je voudrais qu'à chaque fois que je selectionne un autre sousSujet, ma liste de commentaire soit mise à jour.

    cette fois ci, je crée un PanelBar dynamique
    Dans ma jsf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <rich:panelBar binding="#{sousSujetBean.allSousSujet}" id="SousSujet">
    </rich:panelBar>
    Dans mon sousSujetBean:

    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
     
    HtmlPanelBar getAllSousSujet(){
    		HtmlPanelBar hpb=new HtmlPanelBar();
    		FacesContext fc = FacesContext.getCurrentInstance();
    		sujetBean sb=(SujetBean) fc.getExternalContext().getSessionMap().get("sujetBean");
    		GestionSujet gs=null;
    		InitialContext ctx=null;
    		try {
    			ctx = getInitialContext();
    			gs=(GestionSujet) ctx.lookup("GereTonBlog/GestionSujetBean/remote");
    		} catch (Exception e2) {
    			e2.printStackTrace();
    		}
     
    		Collection<SousSujet> lesSsSujet=gs.findSujetById(sb.getSujet().getIdSujet()).getSousSujets();
    		Iterator<SousSujet> sssIt=lesSsSujet.iterator();
    		while(sssIt.hasNext())
    		{
    			SousSujet ss=sssIt.next();
    			HtmlPanelBarItem hpbi=new HtmlPanelBarItem();
    			hpbi.setLabel(ss.getTitre());
    			hpbi.setId(""+ss.getIdFlux());
    			hpbi.setOnenter("sousSujetChange()");
     
    			//***********************************************************************************************************************là je sais pas trop quoi mettre (si il y a quelque chose à rajouter)...
    	hpb.getChildren().add(hpbi);	
    }
    		return hpb;
    	}
    Ma methode souSujetChange() de ma jsf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:jsFunction name="sousSujetChange" 
    	action="#{sousSujetBean.onSousSujetChange}"
    	reRender="commentairesSousSujet" />
    Ma dataList:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <rich:dataList value="#{souSujetBean.sousSujet.commentaires}" id="commentairesSousSujet" var="commentss">
    <h:outputText value="#{commentss.corp}"></h:outputText><br>
    <h:outputText value="Par:"></h:outputText>
    <h:outputText value="#{commentss.utilisateur.pseudoUtilisateur}"></h:outputText><br>	
    <h:outputText value="le:"></h:outputText><h:outputText value="#{commentss.date}"></h:outputText><br><br></rich:dataList>
    Alors maintenant, comment faire pour récupérer l'id du sous sujet selectionné dans ma fonction sousSujetBean.onSousSujetChange?

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Par défaut
    Salut,

    Peut-être que je vais dire une grosse connerie mais bon...
    Tu n'as pas une classe CSS particulière sur le sujet sélectionné?
    Si tel est le cas, il te suffit de récupérer dans le DOM l'objet ayant cette classe la.

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    ajoutes une propriété dans le bean qui correspond l'id de l'objet sélectionné, tu peux passer la valeur à l'aide d'un a4j:actionparam..

  4. #4
    Membre confirmé
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Par défaut
    Désolé pour la réponse liée au css, pas de css chez moi...

    Si je comprend bien:

    dans mon getAllSousSujet(), à la place de // **** je sais pas trop quoi mettre, je rajoute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HtmlActionParameter hAAP=new HtmlActionParameter();
    			hAAP.setValue(ss);
    hpbi.getChildren.add(hAAP);
    Une avancée vu que maintenant l'evenement est lié au clic sur le panelBarItem

    Ca ne mène toujours pas à l'arrivée car je ne sais pas comment recuperer l'actionParameter dans onSousSujetChange() vu que je n'ai pas de parametre dans la fonction (à moins qu'il y ait une technique pour passer un valueChangeEvent)...

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    utilise a4j:support sur l'événement onenter pour faire le reRender ..

  6. #6
    Membre confirmé
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Par défaut
    grand merci, ça fonctionne très bien avec ajaxSupport.

    Par contre je n'arrive à utiliser que les methode deprecated:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    javax.faces.el.MethodBinding mb = FacesContext.getCurrentInstance().getApplication().createMethodBinding( "#{evenementBean.consulterCommentaireEvent}", new Class[] { javax.faces.event.ActionEvent.class } );		
    			hAS.setActionListener(mb);
    Comment fait on avec les nouvelles (la syntaxe exacte)?

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

Discussions similaires

  1. [1.x] [Symfony2]Ajout des champs dynamiquement via ajax
    Par tweetboy dans le forum Symfony
    Réponses: 1
    Dernier message: 26/07/2012, 16h36
  2. Réponses: 9
    Dernier message: 13/12/2009, 13h28
  3. problème <rich:panelBar> dynamique
    Par cybermat3 dans le forum JSF
    Réponses: 8
    Dernier message: 12/03/2009, 11h07
  4. [vBulletin] Connexion via ajax
    Par gorgonite dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 22/09/2006, 10h08
  5. charger donnees dans un datatable via ajax
    Par ouedmouss dans le forum JSF
    Réponses: 4
    Dernier message: 07/08/2006, 16h31

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