Bonjour à tous,

Après quelques jours de recherche, je viens à vous pour demander une petite aide, je pense qu'il doit être simple mais je dois avoir raté quelque chose.... En fait je cherche à passer un paramètre de ma DataTable vers le Managed Bean associé.

C'est le début d'un grand projet, et il me manque cette "technique" pour continuer mon développement...

Pour m'expliquer, j'ai une DataTable avec quelques colonnes, et lorsque je fais le clique sur une colonne j'aurais besoin de passer la valeur de une de ces colonnes ("compte" dans ce cas) vers mon serveur pour effectuer un traitement.

Pour tester mon code j'ai fait un JOptionPane qui doit renvoyer la valeur affectée, mais au lieu de m'envoyer la valeur de la colonne "compte" j'ai comme réponse une valeur qui je pense être l'"Id" de la ligne sélectionnée (quelque chose comme "package.class$objet@183f012").

Code html : 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
<h:body styleClass="fond">
	<h:form>
		<ui:include src="/header.xhtml" />
		<p:dataTable id="comptes" var="osdComptes" value="#{osdJourBean.listeComptes}" selection="#{osdJourBean.selectedCompte}" rowKey="#{osdComptes.compte}" selectionMode="single" scrollable="true" scrollHeight="300" >  
			<p:ajax event="rowSelect" listener="#{osdJourBean.testeVoid}" />
 
			<f:facet name="header">  
		        Liste des OSD's du jour
		    </f:facet>
		    <p:column headerText="T" footerText="T" style="width:3%" >  
		        <h:outputText value="#{osdComptes.traite}" />  
		    </p:column>  
		    <p:column headerText="Agence" footerText="Agence" style="width:7%" >  
		        <h:outputText value="#{osdComptes.agence}" />  
		    </p:column>  
		    <p:column headerText="GC" footerText="GC" style="width:5%" >  
		        <h:outputText value="#{osdComptes.gc}" />  
		    </p:column>  
		    <p:column headerText="Compte" footerText="Compte" style="width:15%" >  
		        <h:outputText value="#{osdComptes.compte}" />  
		    </p:column>    
		    <p:column headerText="Quantité" footerText="Quantité" style="width:7%" >  
		        <h:outputText value="#{osdComptes.nb}" />  
		    </p:column>  
		    <p:column headerText="Montant" footerText="Montant" style="width:20%" >  
		        <h:outputText value="#{osdComptes.montant}" />  
		    </p:column>  
		    <p:column headerText="Intitulé" footerText="Intitulé" >  
		        <h:outputText value="#{osdComptes.intitule}" />  
		    </p:column> 
		</p:dataTable>
		<br />
 
	</h:form>
</h:body>

Voilà mon Managed Bean:
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
@ManagedBean
@SessionScoped
public class OsdJourBean implements Serializable {
	private static final long serialVersionUID = 3808941745816816737L;
        private String selectedCompte;
 
	public String getSelectedCompte(){
		return this.selectedCompte;
	}
 
	public void setSelectedCompte(String selectedCompte){
		this.selectedCompte = selectedCompte;
	}
 
        public void testeVoid(SelectEvent event){
		JOptionPane.showMessageDialog(null, this.selectedCompte);
	}
}

Est-ce que vous pouvez m'aider, svp? Pour ce projet j'utilise JSF 2.1 avec Prime Faces 3.5, tout dans Eclipse...
Je vous remercie d'avance


Marc.