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 :

problème -> DataTable editable


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut problème -> DataTable editable
    Bonjour,

    j'ai un petit souci:

    Je voudrai faire une table comme celle-ci

    http://livedemo.exadel.com/richfaces...del&cid=776833

    Mis a part que le nombre entré dans le inputText dois s'ajouter au nombre déjà existant.


    J'ai fais ma table:

    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
     
    <rich:dataTable onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
    onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
    cellpadding="0" cellspacing="0" width="400" border="0" value="#{usersDataTableBean.users}" var="user">
     
    <rich:column>
    	<f:facet name="header">
    		<h:outputText styleClass="headerText" value="Temps restant" />
    	</f:facet>
    	<h:outputText id="timeOutput" value="#{user.usersDatas.remainTime}" />
    	<f:facet name="footer">
    		<h:outputText id="totalTimeOutput" value="#{usersDataTableBean.totalTime}" />
    	</f:facet>
    </rich:column>
    <rich:column>
    	<f:facet name="header">
    		<h:outputText styleClass="headerText" value="Gestion du temps" />
    	</f:facet>
     
           <h:inputText id="timeInput" value="#{usersDataTableBean.handleTime}"
    	label="Time" />
    	<a4j:commandLink id="timeLink"
    		action="#{usersDataTableBean.updateUser}" value="modifier"
    		reRender="timeOutput, totalTimeOutput" />
    </rich:column>
    </rich:dataTable>
    Et voici le code de ma méthode updateUser():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void updateUser(){
    	Users tmp = (Users)users.getRowData();
            tmp.getUsersDatas().setRemainTime(tmp.getUsersDatas()
            .getRemainTime() +handleTime);
            usersDao.updateUser(tmp);
    	users.setWrappedData(usersDao.getAllUsers());
    }
    Le soucis (nous y voila), c'est que quand je tape un nombre dans le inputText
    JSF fait un setHandleTime() pour chaque ligne ce qui fait que dans la méthode updateUser(), la valeur handleTime est égale a la valeur contenu dans le inputText de la dernière ligne du tableau.

    Qu'est je fais de mal?

  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
    C'est normal tu donne la meme valeur à toutes les lignes:

    ce qu'il faut c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       <h:inputText id="timeInput" value="#{user.handleTime}"
    	label="Time" />

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut
    Non je ne peux pas faire ça. Il n'y a pas de variable handleTime dans ma Classe Users.
    Tu comprendra surement mieu en voyant le Bean en entier:

    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
     
           private DataModel users;
     
    	private java.lang.Integer handleTime;
     
    	public UsersDataTableController() {			
    	}
     
    	public void updateUser(){
    		Users tmp = (Users)users.getRowData();
    		tmp.getUsersDatas().setRemainTime(tmp.getUsersDatas().getRemainTime()+handleTime);
    		usersDao.updateUser(tmp);
    		users.setWrappedData(usersDao.getAllUsers());
    	}
     
    	public DataModel getUsers() {
    		if (users == null){ 	
    			users = new ListDataModel();
    			users.setWrappedData(usersDao.getAllUsers());
    		}
    		return users;
    	}
    	public void setUsers(DataModel users) {
    		this.users = users;
    	}
     
    	public java.lang.Integer getHandleTime() {
    		return handleTime;
    	}
     
    	public void setHandleTime(java.lang.Integer handleTime) {
    		this.handleTime = handleTime;
    	}

  4. #4
    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
    ouiii et comment tu veux donner pour chaque ligne une valeur différente si tu leur applique la même valeur.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut
    oui, j'ai bien compris ça, le problème c'est que je ne vois pas comment le résoudre, je ne veux pas avoir de handleTime dans Users.
    Il n'y a pas d'astuces? Y a t'il moyen de remplir un tableau a partir de 2 listes différentes. La première serait mon DataModel, et la deuxième serait une liste de handleTime;

Discussions similaires

  1. [Posix] problème librairie posix edition de lien
    Par hortensinette dans le forum Développement OS X
    Réponses: 1
    Dernier message: 12/04/2007, 15h57
  2. problème avec l'edition d'un fichier
    Par Tips dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 10/03/2007, 17h22
  3. Facelets: problème avec dataTable et Dreamweaver
    Par cyrille37 dans le forum JSF
    Réponses: 2
    Dernier message: 27/07/2006, 16h56
  4. Problème d'affichage edit
    Par KHEOPS1982 dans le forum Delphi
    Réponses: 3
    Dernier message: 15/06/2006, 22h03

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