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 :

JSF, javascript et panelGrid


Sujet :

JSF Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Août 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut JSF, javascript et panelGrid
    Bonjour!

    Je suis débutante en JAVA/J2EE/JSF et je me tire les cheveux sur un problème.

    Actuellement, j'ai une page qui affiche des données comme suit :

    N° client......Mt total facture
    C101 .........199,30
    C102 .........678,45
    C103 .........123,70

    La colonne "Mt total facture" contientla somme des montants des factures associés au client

    Cela fonctionne très bien avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:dataTable value="#{SessionBeanVisaClient.mfM1}" var="mfM1"   cellspacing="0" cellpadding="0" rowClasses="rangPair, rangImpair" width="100%" columnClasses="columnClass10">
    	<h:column>
    		<h:outputText value="#{mfM1[0]}" title="#{mfM1[3]}" style="width: 100%; text-align: right;" rendered="#{mfM1[1]}"/>
    		<h:commandLink value="#{mfM1[0]}" title="#{mfM1[3]}" style="width: 100%; text-align: right;" rendered="#{mfM1[2]}" onclick="ouvrirPDF('#{mfM1[3]}');"/>
    	</h:column>
    </h:dataTable>

    Ce que je voudrais faire maintenant c'est pouvoir afficher en cliquant sur "+" le détail des montants des factures du client :

    N° client......Mt total facture
    C101 .........-199,30
    .....................49,30
    .....................50,00
    .....................100,00

    J'ai bien essayé de transformer mon code avec :
    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
    <h:dataTable value="#{SessionBeanVisaClient.mfM_VC}" id="tableau" var="mfM_VC" cellspacing="0" cellpadding="0" rowClasses="rangPair, rangImpair" width="100%" columnClasses="columnClass11">
    	<h:column>
    		<h:panelGroup style="width: 100%;">
    			<h:commandButton id="bibi" styleClass="btStatDetail" value="+" type="reset" rendered="#{mfM_VC[4]}" onclick="javascript:displayDetail(this);"/>
    			<h:outputText value="#{mfM_VC[0]}" title="#{mfM_VC[3]}" style="width: 100%; text-align: right;" rendered="#{mfM_VC[1]}"/>
    			<h:commandLink value="#{mfM_VC[0]}" title="#{mfM_VC[3]}" style="width: 100%; text-align: right;" rendered="#{mfM_VC[2]}" onclick="ouvrirPDF('#{mfM_VC[3]}');"/>
    		</h:panelGroup>
     
    		<h:panelGrid columns="1" id="detail_1" width="100%"style="display:none;" cellpadding="0" cellspacing="0" border="0">											
    			<h:commandLink value="123" style="width: 100%; text-align: right;padding:0px;" onclick="window.open('../../html/visa_Chargement_1.htm','','');" />
    			<h:commandLink value="123" style="width: 100%; text-align: right;padding:0px;" onclick="window.open('../../html/visa_Chargement_1.htm','','');" />
    			<h:commandLink value="123" style="width: 100%; text-align: right;padding:0px;" onclick="window.open('../../html/visa_Chargement_1.htm','','');" />
    		</h:panelGrid>
    	</h:column
    </h:dataTable>
    Cela fonctionne bien mais le souci, c'est que je ne sais pas comment faire pour faire afficher dynammiquement les infos dans le panelGrid.

    On m'a conseillée d'utiliser une servlet dans ma fonction displayDetail() mais comment récupérer les infos pour les faire afficher dans le panelGrid?

    Si vous voyez une autre solution, n'hésitez pas à m'en faire part!!! Ca fait 2 jours que je planche sur une solution et là je ne sais plus où chercher!

    Merci de vos conseils!!

  2. #2
    Membre actif Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 208
    Points
    208
    Par défaut
    J'ai une autre solution qui me vient à l'esprit, mais ca t'obligerai à reprendre pas mal de chose...

    L'idée c'est d'utiliser un des composant "Tree" de myFaces : http://myfaces.apache.org/tomahawk/treeTable.html
    Il te suffirais de supprimer les images "dossiers" ou de les remplassers par des images plus pertinentes et le tour serait joué ! Tu aurais alors à ta disposition le petit "+" que tu veux avec tous le coté dynamique géré par le composant myFaces, du coup, plus de problème de ce coté là !

    Enfin voilou, c une idée...

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Août 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 39
    Points : 43
    Points
    43
    Par défaut
    Tu peux utiliser un deuxième datatable "caché" pour le detail, et l'afficher lors d'un clic sur ton "+"

    Exemple de code ici :
    http://forum.java.sun.com/thread.jsp...sageID=9691009

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/04/2009, 13h14
  2. JSF + javascript
    Par amal_noussair dans le forum JSF
    Réponses: 3
    Dernier message: 02/10/2008, 21h18
  3. jsf javascript accent
    Par thetoto52 dans le forum JSF
    Réponses: 2
    Dernier message: 11/04/2008, 11h30
  4. Réponses: 7
    Dernier message: 04/10/2007, 11h31
  5. [JSF][Javascript]Contrôle côté client
    Par JohnBlatt dans le forum JSF
    Réponses: 7
    Dernier message: 15/11/2006, 18h21

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