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 :

bloquer le changement d'un onglet


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut bloquer le changement d'un onglet
    Bonjour,
    J'ai un pb qui me chauffe l'esprit.
    Les pages de mon projet sont composés de plusieurs onglets (rich:tab) tous inclus dans un rich:tanPanel selon ce code :

    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
    <rich:tabPanel ontabchange="return peutChangerDeTab('#{commun.dataBean.peutChangerOnglet}');" switchType="server"  selectedTab="#{selecTab}"  >
     
    ...
    <rich:tab label="#{candidature.ongle_souhaits}" name="souhaits">
     				<ui:include src="/pages/pre-admission/candidature/souhaitsJeune.xhtml" />
     				</rich:tab>
            		<rich:tab label="#{candidature.ongle_identite}" name="identite">
            			<ui:include src="/pages/pre-admission/candidature/identite.xhtml" />
           		    </rich:tab> 
           			<rich:tab label="#{candidature.ongle_situation_actuelle}" name="situationActuelle" disabled="false" rendered="false">
           				<f:facet name="label"> 
    			         	   	 <muc:ongletEnteteEpideOff  paramTab="tab2" paramOngletLabel="#{candidature.ongle_situation_actuelle}" paramDisabled="true" />
    			       	</f:facet>
           			</rich:tab>
           			<rich:tab label="#{candidature.ongle_situation_actuelle}" name="situationActuelle" rendered="true">
           				<ui:include src="/pages/pre-admission/candidature/situationActuelle.xhtml" />
           			</rich:tab>
           			<rich:tab label="#{candidature.ongle_connaissance}" name="connaissanceEpide">	
           				<ui:include src="/pages/pre-admission/candidature/connaissance.xhtml" />
           			</rich:tab>
    Et voila ma fonction js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function peutChangerDeTab(canChangeTab) {
    		if (canChangeTab=='true')
    		return true;
    		else
    			return false;
     }
    En fait je veux bloquer le changement d'onglet tant que dans le formulaire en cours le client n'a pas validé la page. le pb c'est que l'appel serveur ne rafraichit pas l'onglet, quelqu'un a une idée?

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    Je n'ai jamais utilisé le composant rich:tabPanel... mais si c'est à la validation du formulaire que tu dois faire une action, tu ne peux pas utiliser de l'ajax pour recharger ton composant en cas de validation du formulaire ? (avec un a4j:commandButton et tu recharges ton tableau par un reRender)

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    avec un a4j:commandButton et tu recharges ton tableau par un reRender)
    C'est là toute la problématique, je n'arrive pas à rafraichir tout le rich:tab pour qu'il prenne en compte la valeur passée en paramètre la méthode peutChangerTab du code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <rich:tabPanel ontabchange="return peutChangerDeTab('#{commun.dataBean.peutChangerOnglet}');" switchType="server"  selectedTab="souhaits"  >
    ...
    Je sais meme pas si c'est la bonne solution que j'adopte là.
    Une autre idée?

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    Je ne vois pas en quoi mon idée est mauvaise... Tu n'as surement pas compris comment se passe le rechargement en ajax :
    - Tu met un id à ton <rich:tabPanel> (exemple tabPanelId)
    - Tu remplaces le bouton de submit de ton formulaire par un a4j:commandButton et tu met comme propriété reRender="tabPanelId"

    Lorsque l'utilisateur cliquera sur le bouton de validation, ton action sera evaluée. Tu changes dans ton action la variable dataBean.peutChangerOnglet et le formulaire se recharge tout seul grâce au reRender.
    Après le rechargement, ta fonction javascript est évaluée de nouveau...

    Enfin tu peux toujours chercher une autre solution .

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    C'est bon j'ai trouvé une autre solution paléative, c'est de la bidouille javascript, pas propre , mais ca me permet de passer à autre chose.
    Merci tout de même.

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

Discussions similaires

  1. [AC-2000] Comment bloquer le changement d'enregistrement dans un formulaire
    Par gravier3000 dans le forum IHM
    Réponses: 1
    Dernier message: 30/11/2010, 17h41
  2. [VBA-E] Bloquer le nom d'un onglet
    Par marsupilami34 dans le forum Excel
    Réponses: 2
    Dernier message: 03/04/2007, 13h46
  3. bloquer le clic sur un onglet
    Par budylove dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 11/10/2006, 22h32
  4. bloquer le changement de thread
    Par Biosox dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 26/01/2006, 22h52

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