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 :

rechargement d'une ice:dataTable


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut rechargement d'une ice:dataTable
    Bonjour,

    j'ai créé un popup qui me permet de gérer les colonnes de ma dataTable à afficher.
    Lorsque j'affiche le popup, j'ajoute ou supprime des colonnes à afficher.

    Or une fois que le popup se ferme, ma dataTable ne se recharge pas. Il faut que clique sur un header par exemple (car j'utilise le tag ice:commandSortHeader pour trier les colonnes) pour recharger ma dataTable et voir mes nouvelles colonnes sélectionnées.

    Ce que je voudrais, c'est généré un événement, ou quelque chose comme ça qui force le raffichage de ma dataTable à la fermeture de mon popup.

    Merci par avance

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Salut,

    Icefaces permet d'envoyer des requêtes asynchrones au serveur http, sans intervention du client (toi ds ce cas). Tu dois pour cela implémenter l'interface Renderable est appelé une de ces méthodes. Regarde dans le guide développeur d'icefaces, ils expliquent très bien le mécanisme et il donne un exemple d'utilisation. Si tu arrives pas je te montrerais comment faire

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    je crois que c'est ici où ils traitent se point

    http://www.icefaces.org/docs/v1_7_1/...s3.html#999326

  4. #4
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    ça a l'air un peu lourd tout ça non ?

    on ne peut pas dire que lorsque l'on ferme un popup, on submit un truc qui recharge le tableau ?

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    lourd pas du tout. J'utilise ce principe dans une application très critique et je suis très satisfait par ce mécanisme.

    En principe si tu cliques sur le bouton de fermeture de la popup, il y aura un appel au serveur et donc ta pas besoin de faire le rerender mais je me trompe peut être.

  6. #6
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Esil2008 Voir le message
    Tu dois pour cela implémenter l'interface Renderable est appelé une de ces méthodes.
    je ne comprends pas comment mon bean (FilterBean) qui gère mes colonnes de ma dataTable doit forcer le rafraichissement de ma dataTable, qui elle est gérée par un second bean (ProductListBean).

    doit-je faire implémenter ProductListBean de Renderable ? et si oui quelle méthode dois-je appeler pour le coup dans mon FilterBean ?

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    c le backing bean qui doit implementer cette interface. Celui declarer dans le faces-config

  8. #8
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    Citation Envoyé par Esil2008 Voir le message
    c le backing bean qui doit implementer cette interface. Celui declarer dans le faces-config
    mais mes 2 beans sont déclarés dans le faces-config

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Le mettre pour le bean qui gère ta dataTable, c'est pas la peine de le faire pour l'autre à mon avis.

    Je te montre comment tu dois procéder :
    Dans le faces-config, crée un RederManager
    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
    <!-- Render Manager -->
    	<managed-bean>
    	    <description>
    	        Manages render calls to the Faces Context.
    	    </description>
    	    <managed-bean-name>
    	        rmanager
    	    </managed-bean-name>
    	    <managed-bean-class>
    	        com.icesoft.faces.async.render.RenderManager
    	    </managed-bean-class>
    	    <managed-bean-scope>
    	        application
    	    </managed-bean-scope>
    	</managed-bean>
    Dans la déclaration de ton backing bean tu dois rajouter cette propriété

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <managed-property>
    	       <property-name>renderManager</property-name>
    	       <value>#{rmanager}</value>
    	   	</managed-property>
    Maintenant dans ton bean rajoute ca
    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
     
    ProductListBean implements Renderable{
    ...
    static Renderable 				ObjectRenderer;
    	private RenderManager 			renderer 		= null;
    	private PersistentFacesState 	persistentState	= null;
     
    /**
             * This method is called to refresh all the bean in the server
             */
        public void reRender() { // C'est mieux de mettre ce code dans un thread a part
        	ObjectRenderer = this;
     
            if (renderer != null) {
                renderer.requestRender(ObjectRenderer);
            } 
        }
        /**
        * This method must be implemented when we implement the Rendrable interface
        * @param renderManager The instance of the object RenderManager
        */
        public void setRenderManager(RenderManager renderManager) {
                renderer = renderManager;
        }
     
        /** 
         * This method must be implemented when we implement the Rendrable interface
         * */
    	public PersistentFacesState getState() {
    		return persistentState;
    	}
     
    	/**
             *  Return exception of the rendring
             */
    	public void renderingException(RenderingException renderingException) {
     
    	}
    }
    Rajoute les getters et setters

    et mnt il suffit d'appeller reRender()

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

Discussions similaires

  1. comment éviter le rechargement d'une page?
    Par srikta dans le forum ASP
    Réponses: 2
    Dernier message: 13/04/2006, 10h54
  2. [tiles] rechargement d'une seule partie de la page
    Par Shivan dans le forum Struts 1
    Réponses: 6
    Dernier message: 10/04/2006, 10h42
  3. Rechargement d'une popup
    Par zyg dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/03/2006, 14h37
  4. [rechargement d'une frame mère à partir d'une frame fille]
    Par Lady_jade dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/12/2005, 11h02
  5. Rechargement d'une page après ouverture de deux popups
    Par petitmoosse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/11/2005, 16h39

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