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 :

[RichFaces] problème de DataScroller


Sujet :

JSF Java

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Par défaut [RichFaces] problème de DataScroller
    Bonjour, malgré que j'utilise la version 3.2.0 de richfaces, je me retrouve avec un problème assez embêtant avec le composant Datascroller.
    Lorsque je réalise une action comme l'effacement d'un enregistrement lié à la table du datascroller et que le nombre de page se modifie, le datascroller ne pointe pas sur la dernière page réelle mais sur la dernière page avant la modification.

    Ex:Je suis sur la page 3,il y a juste un enregistrement. Je l'efface et lorsque la page est réactualisée je reste sur la page numéro 3 même si elle n'existe plus. je devrai être normalement sur la page 2.

    Je pense avoir trouvé une solution avec UIDatascroller.LAST_FACET_NAME mais je ne sais pas du tout comment relier cette propriété au datascroller en question et l'appeler au bon moment.

    Voilà un semblant de manage bean fait uniquement pour cette action:
    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
     
    package OK_Web.ManagedBean;
     
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import org.richfaces.component.UIDatascroller;
     
     
    public class RichDataScrollerHelper {
     
        private UIDatascroller dataScroller;
     
        public UIDatascroller getDataScroller() {
            return dataScroller;
        }
     
        public void setDataScroller(UIDatascroller dataScroller) {
            this.dataScroller = dataScroller;
        }
     
        public void checkPages(string id)
        {
            UIComponent dataScroller = (UIComponent) FacesContext.getCurrentInstance().getViewRoot().findComponent(id);
     
            int pageCount = dataScroller.getPageCount();
            int pageIndex = dataScroller.getPageIndex();
            if (pageIndex > pageCount) {
                dataScroller.setPage(UIDatascroller.LAST_FACET_NAME);
            }
        }
    }
    Le problème c'est que getPageIndex() et setPage() sont des méthodes dépréciées.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    ajoute dans la table


  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    ajoute dans la table

    Ahh non ça si tu fais une action ajax à partir de la table comem filter ou order.

    tu peux faire reRender du dataScroller là ou tu efface l'enregistrement.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Par défaut
    J'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:commandButton action="#{ReferenceMB.delete}" onclick="if(!confirmDelete()){return false;}" value="#{msg.Delete}" reRender="scroller"/>
    Mais ça ne donne pas le résultat voulu.

    Et j'ai un autre problème que j'ai remarqué lorsque j'ai fais une modification d'un enregistrement. L'enregistrement modifié se met en dernier dans la liste au lieu de conserver sa place dans la liste.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 44
    Par défaut
    J'ai réglé le problème de modification en rajoutant l'attribut sortOrder="ASCENDING" sur la colonne ID et j'ai réussi à retourner la bonne page du datascroller en mettant à jour mes API Richfaces(3.2.0.=>3.3.0).

    Par contre la partie suppression ne fonctionne plus vraiment. Il efface pas le bon enregistrement.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 26/11/2010, 12h28
  2. [JSF & RichFaces] problème binding
    Par drim dans le forum JSF
    Réponses: 9
    Dernier message: 19/04/2008, 13h24
  3. [RichFaces]Problème de rafraichissement Ajax
    Par Rom1984 dans le forum JSF
    Réponses: 6
    Dernier message: 23/01/2008, 15h45
  4. Réponses: 4
    Dernier message: 23/01/2008, 11h35
  5. Réponses: 2
    Dernier message: 14/01/2008, 17h32

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