[RichFaces]Problème de rafraichissement Ajax
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 :cry:
Voici le code du tableau avec seulement la colonne de statut
Code:
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> |
Le panel contenant les boutons:
Code:
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> |
La méthode java qui s'occupe de la mise à jour de l'état des boutons:
Code:
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);
}
}
} |
Merci de votre aide