Changement dynamique de label lié à un DataScroller
Bonjour,
voici le contexte :
Sur ma page j'ai un datatable qui contient X vallées, il y a 1 vallée par page de mon tableau.
Juste au dessus de ce tableau, j'ai un outputLabel qui contient le nom de la vallée courante.
Pour se faire, je passe dans le scope, la liste des vallées et au chargement de la page, je met dans mon label, la premiere de cette liste.
Le but etant, lorsque je change de page via mon datascroller, mettre à jour mon label en lui attribuant la valeur de malistevallees[numPage].
Voici le code de ma page :
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <ui:param name="currentVallee" value="#{firstVallee}" />
<h:form id="resultsVallee" >
<h:outputLabel id="selectedVallee" value="#{currentVallee}" style="display:block;width:100%;text-align:center;font-size:14px;font-weight:bold;"/><br/>
<rich:dataTable cellpadding="0" style="width:100%;text-align:center" rendered="#{listeSelectedVallees != null}"
value="#{listeSelectedVallees}" var="liste" id="myTabVallee" rows="14" rowKeyVar="rkvar" >
<!-- facet -->
<f:facet name="header">
<rich:columnGroup>
<rich:column width="100px" style="text-align:center">
<h:outputText value="#{msg['parc.hydro.marge.periode']}" />
</rich:column>
<rich:column id="MargeTotale" label="MargeTotale" width="150px" style="text-align:center">
<h:outputText value="#{msg['parc.hydro.marge.totale']}" />
</rich:column>
<rich:column id="puissanceTotaleMob"
label="#{msg['parc.hydro.marge.puissance.totale.mobilisable']}" width="150px" style="text-align:center">
<h:outputText value="#{msg['parc.hydro.marge.puissance.totale.mobilisable']}" />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column id="periode" label="#{msg['parc.hydro.marge.periode']}" width="300px"
sortBy="#{liste.periode}">
<h:outputText value="#{liste.periode}" />
</rich:column>
<rich:column id="MargeTotale" label="#{msg['parc.hydro.marge.totale']}" width="200px"
sortBy="#{liste.margeTotale}">
<h:outputText value="#{liste.margeTotale}" />
</rich:column>
<rich:column id="puissanceTotaleMob"
label="#{msg['parc.hydro.marge.puissance.totale.mobilisable']}" width="200px" sortable="true"
sortBy="#{liste.puissanceTotaleMobilisable}">
<h:outputText value="#{liste.puissanceTotaleMobilisable}" />
</rich:column>
<f:facet name="footer">
<rich:datascroller for="myTabVallee" style="width:100%" pageIndexVar="currPage" reRender="selectedVallee"
onpagechange="#{rich:findComponent('selectedVallee').value}='#{selectedVallees[currPage]}'">
</rich:datascroller>
</f:facet>
</rich:dataTable>
</h:form> |
Avec l'utilisation de rich:findComponent actuelle, rien ne se passe.
J'ai aussi essayé les solutions suivantes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <ui:param name="currentVallee" value="#{firstVallee}" />
<a4j:jsFunction name="updateValleeTitle" reRender="selectedVallee" ajaxSingle="true">
<a4j:actionparam name="val" assignTo="#{currentVallee}" />
</a4j:jsFunction>
<rich:datascroller for="myTabVallee" status="none" style="width:100%" pageIndexVar="currPage" onpagechange="updateValleeTitle('#{selectedVallees[currPage]}')"/>
<rich:datascroller for="myTabVallee" style="width:100%" pageIndexVar="currPage" >
<a4j:support event="onpagechange" reRender="selectedVallee" >
<a4j:actionparam name="val" assignTo="#{currentVallee}" value="#{selectedVallees[currPage]}"/>
</a4j:support>
</rich:datascroller> |
Dans ces deux cas là, mon label est bien mis à jour :ccool: mais c'est mon datascroller qui plante et qui ne met plus à jour mon tableau quand je clique sur la page suivante avec l'erreur suivante :
Code:
1 2 3
| WARN : 08:04:18 : org.ajax4jsf.component.AjaxViewRoot(246) : No component found to process as 'ajaxSingle' for clientId resultsVallee:myTabVallee:j_id54
WARN : 08:04:18 : org.ajax4jsf.component.AjaxViewRoot(246) : No component found to process as 'ajaxSingle' for clientId resultsVallee:myTabVallee:j_id54
WARN : 08:04:18 : org.ajax4jsf.component.AjaxViewRoot(246) : No component found to process as 'ajaxSingle' for clientId resultsVallee:myTabVallee:j_id54 |
Si certains avaient une petite idée ;b