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 :

Changement dynamique de label lié à un DataScroller


Sujet :

JSF Java

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut 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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Problème résolu en spécifiant l'action, l'ajaxSingle et le rerender directement dans le datascroller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    				<f:facet name="footer">
    					 <rich:datascroller for="myTabVallee" style="width:100%" page="#{valleeAction.numPage}"  reRender="selectedVallee" action="updateValleeLabel" ajaxSingle="true" />
    				</f:facet>
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

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

Discussions similaires

  1. [C#] Changement dynamique de police (nfop) ?
    Par Amerok dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/06/2008, 11h42
  2. JTable et Modèle : Changement dynamique du modèle
    Par mlle lain dans le forum Composants
    Réponses: 7
    Dernier message: 10/03/2006, 10h00
  3. changer dynamiquement couleur <LABEL>
    Par justdams dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/02/2006, 15h22
  4. Changement dynamiquement de la GDB distante en local
    Par ada_b dans le forum Débuter
    Réponses: 4
    Dernier message: 18/05/2005, 13h15
  5. Changement dynamique d'une iframe
    Par davids21 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/05/2005, 13h30

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