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?