Bonjour,
Mon problème est un peu complexe à expliquer donc j'espère que vous comprendrez ^^'
J'ai un tableau (<rich:scrollableDataTable>), sur lequel je définis un attribut <a4j:support>. Mon but est que lorsque l'on clique sur une ligne du tableau, une information sur le statut de cette ligne est vérifiée dans le controller (Java) et des boutons de Modification et Annulation (contenus dans le panel d'id panelBouttons) sont désactivés ou non en fonction de ce statut.
Bien entendu, rien ne se produit au niveau de ces fichus boutons quand je clique sur une ligne du tableau
Voici le code du tableau avec seulement la colonne de statut
Le panel contenant les boutons:
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 <rich:scrollableDataTable height="#{pageController.view.height}px" width="560px" rows="#{pageController.view.rows}" columnClasses="col" var="page" sortMode="single" value="#{pageController.model.pages}" binding="#{pageController.view.tablePage}" id="tablePages" selection="#{pageController.model.selectedPage}"> <a4j:support event="onselectionchange" onsubmit="#{pageController.model.clickRowJs}" action="#{pageController.actionRowSelected}" reRender="panelBouttons, pg10, pg11, groupError" id="sp0" /> <rich:column id="colStatut" sortExpression="#{page.statut}"> <f:facet name="header"> <h:outputText styleClass="headerText" value="#{bundle.e19_page_libelle_col2}" d="labelCol2" /> </f:facet> <h:outputText value="#{page.statut}" id="statutValue" /> </rich:column> </rich:scrollableDataTable>
La méthode java qui s'occupe de la mise à jour de l'état des boutons:
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 <h:panelGrid border="0" columns="4" width="560px" id="panelBouttons"> <h:commandButton value="#{bundle.e19_page_bouton_valider}" id="btnValider" styleClass="rsButton" disabled="#{pageController.model.validerDisabled}" binding="#{pageController.view.validerBouton}"> <a4j:support reRender="tablePages, pg100" action="#{pageController.actionValider}" event="onclick" disableDefault="true" /> </h:commandButton> <a4j:commandButton styleClass="rsButton" value="#{bundle.e19_page_bouton_rafraichir}" id="btnRafraichir" action="#{pageController.actionRefresh}" reRender="PageForm" /> </h:panelGrid>
Merci de votre aide
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
30
31
32
33 private void updateBouttons(Page pPage) { String lStatut = pPage.getStatutId(); // grisage des boutons annuler et valider getModel().setAnnulerDisabled(true); getModel().setValiderDisabled(true); getView().getAnnulerBouton().setDisabled(true); getView().getNouveauBouton().setDisabled(true); // seulement si l'utilisateur possède les droits de modification if (!getModel().isAccesModif()) { // si le statut est "A contrôler" les boutons annuler et valider // sont actifs if (lStatut.equals(Constantes.A_CONTROLER)) { getModel().setAnnulerDisabled(false); getModel().setValiderDisabled(false); getView().getAnnulerBouton().setDisabled(false); getView().getNouveauBouton().setDisabled(false); } else if (lStatut.equals(Constantes.EN_COURS)) { // si le statut // est "En // cours" le // bouton // annuler est // activé getModel().setAnnulerDisabled(false); getView().getAnnulerBouton().setDisabled(false); } } }
Partager